我使用Composer安装Zend Framework 2和其他库。每次在相同路径重新安装应用程序后,我都必须手动清除APC(版本3.1.13)opcode缓存(使用PHP 5.4.8),否则我会遇到如下错误:
PHP Fatal error: Interface 'Zend\\Mvc\\ApplicationInterface' not found
或者
PHP Fatal error: include(): Cannot redeclare class zend\\eventmanager\\eventscapableinterface
每次应用程序安装后,失败的类都会发生变化。我已经设置了apc.stat=1,因此如果我在相同的路径部署应用程序,则操作码缓存应该自动注意到新部署的php文件并重新编译它们。
我已经在Github上与composer开发人员讨论了这个问题,并在这里发布了我的APC设置:https://github.com/composer/composer/issues/1662。我们认为这更像是一个APC问题。
apc
相当愚蠢。 - Wrikkenapc.include_once_override = 0
。 - Simon Hampelapc.include_once_override = 0
,请参见这里。 @ZdenekMachek 我会尝试的,但是由于我在重新安装时删除了整个供应商文件夹(包含Zend Framework),然后再次安装其内容(从composer缓存中),所以文件时间戳应该会自动更新。 - aimfeldfind . -exec touch {} \;
如果您愿意,将其作为答案提供,以便我可以接受并点赞! - aimfeld