CakePHP имеет кэш, расположенный в /app/tmp/cache
.Структура каталогов выглядит следующим образом:
# /app/tmp/cache
# /app/tmp/cache/models
# /app/tmp/cache/persistent
# /app/tmp/cache/views
Основная проблема, с которой обычно сталкиваются, связана с кэшем модели.Когда отладка выключена (т. Е. В работе) и вы заставляете CakePHP отправлять, он анализирует схему всех таблиц вашей базы данных и сохраняет их в виде простых файлов в папке models
выше.Если вы не удалите файлы в этой папке, CakePHP начнет говорить, что модели / таблицы / поля не существуют, когда они явно существуют в вашей базе данных.
Если вы включаете кэширование представлений в своем приложении, когда представленияотображаются впервые, CakePHP скомпилирует плоские файлы в папку views
, чтобы избежать повторной визуализации этих представлений при следующем запросе.
Во время процесса начальной загрузки CakePHP необходимо определить используемую структуру каталогов.в вашей установке, прежде чем он сможет получить доступ к важным файлам (например, database.php
).Таким образом, CakePHP будет генерировать файлы кэша в каталог persistent
с абсолютными путями к каждому важному каталогу и файлу, любым плагинам, которые вы используете, и даже любым созданным вами локализациям, чтобы он мог быстро переводить ваше приложение между языками без повторного анализа.pot
files.
Итак, проще говоря, вы должны помнить об удалении всех файлов в этих каталогах всякий раз, когда вы вносите изменения в код приложения, которое находится в разработке, или добавляете это как часть вашего механизм развертывания .Однако вы не должны удалять какие-либо из каталогов.
Причина, по которой изменение отладки на 3 работает для вас, заключается в том, что когда включен режим отладки (при любом значении, большем нуля), кэш очищаетсяи регенерируется при каждом запросе, но - пока это работает - автоматизировать нелегко.
Существует несколько способов сделать это программно, включая команды оболочки , CakePHPплагины , конфиги Capistrano , файлы Ant - но это можно сделать и вручную.