ed-fruty / laravel4-namespace-migrator
Laravel 4的包,支持在迁移类中使用命名空间
v1.0.0
2014-12-02 23:12 UTC
Requires
- laravel/framework: ~4.2
This package is not auto-updated.
Last update: 2024-09-24 03:23:26 UTC
README
Laravel 4不支持在迁移类中使用命名空间,但这不是一个问题 ;)
#安装
- 使用Composer将包安装到您的项目中
composer require "ed-fruty/laravel4-namespace-migrator": "1.0.0"
- 在
app/config/app.php
中添加服务提供者
'Fruty\LaravelNamespaceMigrator\LaravelNamespaceMigratorServiceProvider',
- 发布包配置
php artisan config:publish ed-fruty/laravel4-namespace-migrator
#使用
默认迁移命名空间搜索
当您调用迁移如 ```bash php artisan migrate --path=app/Modules/Blog/Migrations ``` 时,Migrator会自动在`app/Modules/Blog/Migrations`中搜索具有命名空间`App\Modules\Blog\Migrations`的类。要更改默认值,编辑配置文件`app/config/packages/ed-fruty/laravel4-namespace-migrator/main.php`中的`default`块。为迁移路径保留命名空间
要为某些路径保留命名空间,请编辑配置文件`app/config/packages/ed-fruty/laravel4-namespace-migrator/main.php`。例如:'reserved' => [ base_path('app/modules/Blog/migrations') => 'Blog\\Migrations\\', ]
这意味着,当您调用迁移如下所示时:
php artisan migrate --path=app/modules/Blog/migrations
Migrator会自动在该目录中搜索具有命名空间Blog\Migrations
的类。
工作台
对于工作台包,Migrator会自动通过`vendor/package`名称搜索迁移。当您调用迁移如下所示时:php artisan migrate --bench=foo/bar
Migrator会在`workbench/foo/bar/src/migrations`中搜索具有命名空间Foo\Bar\Migrations
的类。如果工作台命名空间不等于vendor/package
名称,您必须在'reserved'块中注册它,如下所示:
base_path('workbench/foo/bar/src/migrations') => 'VendorNamespace\\PackageNamespace\\'
无命名空间
Migrator总是首先搜索具有命名空间的类,如果找不到具有命名空间的类,它将尝试从该目录中加载没有命名空间的类。例如基本用法:php artisan migrate
默认配置下,Migrator首先在`app/database/migrations`中的`app/database/migrations`中搜索具有命名空间App\database\migrations
的迁移类,如果不存在,Migrator将尝试从该目录中加载没有命名空间的类。