2016-12-20 5 views
3

Я использую Laravel 5.1 сейчас.Почему класс миграции Laravel не имеет пространства имен?

Файл миграции класса порожденную php artisan make:migration create_users_table --create=users команды, будет выглядеть так:

<?php 

use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateUsersTable extends Migration 
{ 
    // up and down ... 
} 

Когда я редактирую этот класс миграции файл и сохранить его, PHP Code Sniffer в моей возвышенной тексте укажут нестандартную сообщение «Каждый класс должен находиться в пространстве имен хотя бы одного уровня».

У меня не было ответа в обоих [https://laravel.com/docs/5.1/migrations] и результатах поиска в верхней части. Связанные с этим вопросы о stackoverflow также не выясняют меня.

Любой знает причину или дает мне несколько советов? Благодаря!

ответ

4

Это вопрос дизайна, в основном. Есть люди, использующие миграцию с именами. Но миграция загружается и хранится в таблице базы данных миграции, с помощью мигратора, может быть проблемой для их размещения в именах. Если вы проверите его немного, вы увидите, что имя класса является частью имени файла миграции, и Laravel необходимо использовать это имя для создания экземпляра класса миграции для его выполнения. Например, при импорте имен можно было бы привести к двум различным классам с тем же именем базового класса (имя класса минус пространство имен), которое могло бы столкнуться и было бы очень трудно найти. Раствор для того, чтобы добавить пространство имен к имени файла миграции, но они должны назвать это что-то вроде

2015_12_16_164131_database_migrations|create_users_table.php 

Что бы перевести в класс

Database\Migrations\CreateUsersTable 

Я использую | для отделите пространство имен от имени файла (класса), но все это получило нечетное, не так ли?

Кроме того, поскольку миграция должна выполняться в определенном порядке, дата и временная метка в начале имени файла миграции являются обязательными, так что это некоторые из whys.

+0

Я не совсем понимаю «решение», о котором вы говорили выше, оно уже реализовано laravel или просто пример для объяснения «если класс миграции имеет пространство имен»? – cjli

 Смежные вопросы

  • Нет связанных вопросов^_^