Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.10.2018 09:26:16

git, deploy на production

Здравствуйте!

Пишу первый велосипед на Laravel. Возник вопрос про правильный перенос проекта в дальнейшем на рабочий сервер.
В частности, что именно нужно включать в .gitignore (помимо /vendor)?
У меня локально установлены некоторые девелоперские пакеты вроде ide-helper и debugbar. Значит файл config/app.php с его локальным 'providers' => [] тоже нужно в ignore? Может есть инструкция какие именно каталоги и файлы нужно выгружать в git, а какие добавлять в ignore?

Дальше, на стороне production, я правильно понимаю, что нужно будет выполнить примерно следующее?:

// перевести в maintance
php artisan down
// забрать изменения из git
git pull
// установить пакеты по файлу composer.json (именно install, а не update) за исключением require-dev
composer install --no-dev
// запустить миграции БД
php artisan migrate 
// почистить кэш приложения
php artisan config:cache
php artisan route:cache
// в конце вернуть
php artisan up

Еще поиск нашел такую вещь, как deployer.org
СтОит с ним связываться или нет?

Спасибо

Не в сети

#2 25.10.2018 16:39:04

Re: git, deploy на production

Разница между продакшн и не-продакшен должна описываться в .env, который конечно же в игноре.
Мы также игнорируем robots.txt т.к. тестовые сайты содержат в нем запрет на индексацию.

Значит файл config/app.php с его локальным 'providers' => [] тоже нужно в ignore?

Нет.но возможно где-то в инициализации ты захочешь сделать if () как здесь, например, рекомендовано:
https://github.com/barryvdh/laravel-ide … /readme.md


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 26.10.2018 15:18:57

Re: git, deploy на production

Спасибо! Понятно
Но тогда такой вопрос: как переопределять некоторые файлы из каталога vendor?
В инете нашел по строке "Laravel How to override vendor class file" совет: с помощью composer в    
"exclude-from-classmap" прописать исключаемый, а в "psr-4" свой.
Но там есть один нюанс с путями: в Windows '\\', а в Linux '/'
А какже тогда быть, если у меня дома Linux, а на работе Windows? (а файл composer.json общий и его нужно добавлять в git)

Не в сети

#4 26.10.2018 15:50:55

Re: git, deploy на production

Не надо их переопределять. Они вам не мешают. Не будет обращения к классу — не будет расходов по его загрузке.

Везде используйте слеш на юниксовый манер, винда его тоже понимает.
composer.json и composer.lock должны быть закоммичены в git


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#5 11.04.2020 16:10:01

Re: git, deploy на production

Насчет пакетов для локальной разработки их можно вынести из конфига в AppServiceProvier.
Где в методе register проверить или окружение сейчас не продакшн - и зарегистрировать провайдеры дев пакетов.

Что-то вроде такого:

if(!app()->environment('production')){
  $this->app->regiser(...);
}

Не в сети

Подвал раздела