Emchik
@Emchik
Что-то прикольное сделать могу

Как использовать artisan команды при создании пакета Laravel 7?

Допустим, я создаю пакет на Laravel 7. Как мне использовать artisan команды Laravel 7, чтобы создавать модели, миграции, контроллеры, политики и т.п. для своего пакета (в его директории)?

Не нашёл этой инфы в документации.
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
agoalofalife
@agoalofalife
Team Lead
Рассмотрим пример когда вы разрабатываете свой пакет локально.
В корне проекта создается папка и добавляется запись в composer.json вроде такой
"repositories": [
    {
      "type": "path",
      "url": "author/package"
    }
  ]

Подробнее можно прочитать здесь в документации
При такой настройке, пакет создаст ссылку в vendor.

По поводу стандартных команд в Laravel(artisan) тут все индивидуально, к примеру, миграцию можно добавить ваш пакет такой командой
php artisan make:migration name_migration --path=author/package

В команде по созданию factories, за корень берется databasePath, выйти из ситуации след образом.
- В зависимости от контекста менять базовый путь
- Отнаследоваться или создать свою команду для формирования пути при создании фабрики

Сам я в таких случаях просто создавал файлы руками.
Посмотрев несколько готовых пакетов для разработки пакетов под Laravel, такой фичи не обнаружил, а в одном из них предлагают создавать через обычный artisan и просто копировать в свой пакет.

Еще можно воспользоваться консолью:
php artisan make:controller OurController && mv app/Http/Controllers/OurController.php author/package/pathWhereControllerStore

Соответственно можно создать алиас и писать меньше, а можно скрипт, где будет еще изменяться namespace в соответствии с вашим пакетом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sanes
@Sanes
За модульностью сюда.
Про композер ничего особо нет. Может здесь.
Ответ написан
Комментировать
@Kostik_1993
Web Developer
Вы сами то понимаете чего хотите?)
Может быть вам просто нужно создать свои команды консольные? А в папку с пакетами ничего нельзя генерировать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы