ed-fruty / laravel4-namespace-migrator
Package for Laravel 4, supporting using namespaces in migration classes
Requires
- laravel/framework: ~4.2
This package is not auto-updated.
Last update: 2024-12-17 04:21:01 UTC
README
Laravel 4 is not support namespaces in migration classes, but it is not a problem ;)
#Installation
- Use Composer to install package into your project:
composer require "ed-fruty/laravel4-namespace-migrator": "1.0.0"
- Add the service provider in
app/config/app.php
:
'Fruty\LaravelNamespaceMigrator\LaravelNamespaceMigratorServiceProvider',
- Publish package configuration
php artisan config:publish ed-fruty/laravel4-namespace-migrator
#Usage
Default migration namespaces searching
When you call migrations like ```bash php artisan migrate --path=app/Modules/Blog/Migrations ``` Migrator automatically searches classes with namespace `App\Modules\Blog\Migrations` in `app/Modules/Blog/Migrations` To change default values, edit configuration file `app/config/packages/ed-fruty/laravel4-namespace-migrator/main.php` block `default`Reserving namespaces for migration paths
For reserving namespace for some path, edit configuration file `app/config/packages/ed-fruty/laravel4-namespace-migrator/main.php`. Example:'reserved' => [ base_path('app/modules/Blog/migrations') => 'Blog\\Migrations\\', ]
It means, when you call migrations like:
php artisan migrate --path=app/modules/Blog/migrations
Migrator automatically searches classes with namespace Blog\Migrations
in that directory.
Workbenches
For workbench packages Migrator automatically searches migrations by `vendor/package` name. When you call migrations like:php artisan migrate --bench=foo/bar
Migrator searches classes with namespace Foo\Bar\Migrations
in workbench/foo/bar/src/migrations
So if workbench namespace does not equal to vendor/package
name you must register it in 'reserved' block like:
base_path('workbench/foo/bar/src/migrations') => 'VendorNamespace\\PackageNamespace\\'
Without namespaces
Migrator always searches classes with namespace firstly and if class not found with namespace it trying to search class without namespace. For example basic usage:php artisan migrate
By default configs, Migrator firstly searches migration classes with namespace App\database\migrations
in app/database/migrations
and if it does not exists, Migrator tries to load class without namespace from that catalog.