ed-fruty/laravel4-namespace-migrator

Package for Laravel 4, supporting using namespaces in migration classes

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

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

  1. Use Composer to install package into your project:
composer require "ed-fruty/laravel4-namespace-migrator": "1.0.0"
  1. Add the service provider in app/config/app.php:
'Fruty\LaravelNamespaceMigrator\LaravelNamespaceMigratorServiceProvider',
  1. 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.