Как отключить кеш в среде 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 .
Просто вслух …
Ура!