Как отключить кеш в среде cli?
Причина в том, что системному пользователю, выполняющему сценарий, не разрешается записывать в каталог кэша, поэтому скрипт не может выполнить.
В моем application.ini у меня есть
[production] resources.cachemanager.database.frontend.name = Core resources.cachemanager.database.frontend.customFrontendNaming = false resources.cachemanager.database.frontend.options.lifetime = 7200 resources.cachemanager.database.frontend.options.automatic_serialization = true resources.cachemanager.database.backend.name = File resources.cachemanager.database.backend.customBackendNaming = false resources.cachemanager.database.backend.options.cache_dir = HTTPDOCS_PATH "/data/cache/database" resources.cachemanager.database.frontendBackendAutoload = false [cli : production]
* <] 🙂
Пытаться
resources.cachemanager.database.frontend.options.caching = false
См. API и Справочное руководство ZF для свойства $_options
в Zend_Cache_Core
Как и вы, я не вижу очевидного способа отключить плагин в разделе конфигурации, который был зарегистрирован в родительском разделе. Было бы здорово, если Zend_Config_Ini
допускал множественное наследование, вроде того, как HTML-элемент может иметь несколько классов CSS в атрибуте класса. (Думаю, это не так). Затем вы можете поместить регистрацию плагина в один раздел [myplugsection]
, разрешить [production]
продлить [myplug]
то время как [cli]
этого не делает, вроде как Doctrine имеет actAs
шаблоны и beahviors.
Следующее, что может быть, это создать раздел, называемый как [core], содержащий большую часть того, что вы теперь используете в [production]
. Как [production]
и [cli]
могут расширять [core]
, но [production]
регистрирует плагин, а [cli]
нет.
Конечно, альтернативой могло бы стать перемещение регистрации плагина в Bootstrap, где у вас будет более тонкий контроль над регистрацией плагина. В частности, вы можете вызвать $front->unregisterPlugin()
, где $front
– FrontController
.
Просто вслух …
Ура!