ed-fruty/laravel4-namespace-migrator

Laravel 4的包,支持在迁移类中使用命名空间

v1.0.0 2014-12-02 23:12 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:23:26 UTC


README

Laravel 4不支持在迁移类中使用命名空间,但这不是一个问题 ;)

#安装

  1. 使用Composer将包安装到您的项目中
composer require "ed-fruty/laravel4-namespace-migrator": "1.0.0"
  1. app/config/app.php中添加服务提供者
'Fruty\LaravelNamespaceMigrator\LaravelNamespaceMigratorServiceProvider',
  1. 发布包配置
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将尝试从该目录中加载没有命名空间的类。