Laravel по-русски

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

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

#1 10.05.2017 17:07:49

Кэширование всех php файлов в Laravel 5.3 (разработка на продакшине)

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

Локально все работает отлично. Вношу изменения в контроллеры, кроны, и тд. - изменения сразу вступают в силу.

Проблема возникала на "продакшине". Изменения вступают в силу примерно через 2-5 минут после того, как залит файл.

Проблему в view решил следующим образом Artisan::call('view:clear'); - так можно хоть править фронт-енд.

Но при редактировании других файлов, контроллеров и тд - вообще беда. Работать невозможно.

Разработка по определенным причинам должна вестить на хостинге (не локально).

Коллеги, помогите, пожалуйста.

п.с.
Artisan::call('cache:clear');
Artisan::call('route:clear');
Artisan::call('config:clear');
эти команды не помогают.

laravel 5.3
PHP 7.0.1
APP_ENV=debug
APP_DEBUG=true

Изменено root (10.05.2017 17:09:34)

Не в сети

#2 10.05.2017 18:18:28

Re: Кэширование всех php файлов в Laravel 5.3 (разработка на продакшине)

блейд пересобирает виды, проверяя время изменения на файлах шаблонов. скорее всего они заливаются по ftp/sftp и программа, которая это делает, также ставит на них время с рабочего компа. вероятно время рабочего компа также отличается от времени сервера и после заливки шаблонизатор не может понять что время изменилось до тех пор пока сервер не «догонит» то время которое оказалось на залитых файлах

соответственно с пхп-файлами скорее всего та же история, только сбит с толку оказывается уже php opcache, который в 7.0 есть из коробки и скорее всего включен

надо либо синхронизировать время локальной машины и сервера или (проще) отключить подмену времени файлов при заливке в софтине

Не в сети

#3 10.05.2017 19:09:14

Re: Кэширование всех php файлов в Laravel 5.3 (разработка на продакшине)

Та же самая мысль. Посмотри что у тебя со временем на локальном компе / сервере, а так же какое время ставится на файл после деплоя.

Не в сети

#4 10.05.2017 20:07:31

Re: Кэширование всех php файлов в Laravel 5.3 (разработка на продакшине)

root пишет:

Но при редактировании других файлов, контроллеров и тд - вообще беда. Работать невозможно.


opcache? php.ini

http://php.net/manual/ru/intro.opcache.php

проверь не включен ли

Изменено covobo (10.05.2017 20:08:26)

Не в сети

#5 10.05.2017 20:16:26

Re: Кэширование всех php файлов в Laravel 5.3 (разработка на продакшине)

проверь не включен ли

должен быть включен конечно же

Не в сети

#6 11.05.2017 11:46:13

Re: Кэширование всех php файлов в Laravel 5.3 (разработка на продакшине)

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

Спасибо за ответы.

Время сохранения файла на сервере корректное.

А когда отключаю OpCache, то появляется ошибка:

ErrorException in console.php line 5:
The use statement with non-compound name 'DB' has no effect

-----------------

Нашел ! Как же я рад. И сколько боли это принесло.

http://stackoverflow.com/questions/2057 … right-away

Нужно открыть файл отвечающий за конфиги opcache (посмотреть путь через phpinfo();)

И изменить opcache.revalidate_freq=0  - РАВНО 0 !!!

У меня стояло 180. 3 минуты я ждал, когда изменения вступят в силу! Можете представить эффективность разработки на хостинге!!! smile))

Сейчас все ок!

Не в сети

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