Laravel подготовка к pduction, как отсечь всё лишнее?
Озадачился таким вопросом. Если допустим есть рабочее приложение на Laravel, и пришло время деплоя на продакшн-сервер (и не на один, а на очень много), но многие файлы и папки явно не будут использованы никогда, ~60% из папки (/vendor) и т.д. Должен ли я вообще озадачиваться подобным вопросом?
Я начинающий разработчик и возможно не могу подобрать нужных слов, что-бы правильно загуглить, по этому решил спросить тут, не ругайте сильно если вопрос глупый.
Если подобная задача актуальна, то делается ли это ручками, или есть какие-то автоматизированные решения, которые смогут вычислить какие исходники вендоров не используются в проекте.
P.S. Вот например есть CMS разработанная на Laravel (October CMS) но структура папок её отличается от той что идёт по умолчанию.
А что делать с dev зависимостями в composer.json? Как их исключить из проекта. Ведь провайдеры и фасады остаются. Или необходимо для деплоя делать отдельный файл config/app.php ?
Станислав Почепко: дев-зависимости на то и дев, что на продакшене их в принципе не нужно устанавливать. Такие вещи проще всего вообще подключать не в config/app.php, а динамически в AppServiceProvider:
public function register()
{
if (app()->environment('development', 'local')) {
$this->app->register(IdeHelperServiceProvider::class);
$this->app->register(DebugbarServiceProvider::class);
}
}
Laravel все продумал за вас.
Забейте на файлы, максимум что они занимают - пару мегабайт пространства.
Выполните команду php artisan optimize. Она сгенерирует загрузчик, который отсечет все лишнее, оставив только используемые в приложении классы.
На самом деле, по-умолчанию эта команда соберёт только файлы фреймворка. Для того, чтобы она реально работала на полную силу, нужно её сконфигурировать в config/compile.php