我一直在争论这个问题,并且无法解决这个问题,也许其他人已经或者可能在这里有更深层次的问题,包括Slim,PHP,Apache等.经过几个小时的工作,我的Slim安装将开始给予这在所有路线上:
致命错误:类Slim\Collection包含1个抽象方法,因此必须在F:\ Projects\example\server\vendor\slim\slim\Slim\Collection.php中声明为抽象或实现其余方法(IteratorAggregate :: getIterator)第21行
如果我重新启动Apache,这个问题就会消失.(反正几个小时.)
我发现这是两年前有人遇到过类似问题的人,而且这个人在没有实际协助的情况下帮助他们:https://community.apachefriends.org/viewtopic.php?p = 250966&sid = 96ef58aaeb7fe142a7dcdfd506a8683f
我已经尝试过干净的擦除并安装我的作曲家供应商目录.这不能解决它.我可以清楚地看到getIterator在错误消息中的文件中按预期实现了.
PHP版本7.0.12,Windows 7,x86 PHP构建
它在几个小时后再次发生,但有一个不同但相似的错误消息:
致命错误:类Pimple\Container包含1个抽象方法,因此必须在F:\ Projects\example\server\vendor\pimple\pimple\src\Pimple\Container中声明为抽象或实现其余方法(ArrayAccess :: sqlserver).第34行的PHP
这个问题有一个类似的问题,并通过重新启动PHP"解决"它,但这显然不是一个实际的解决方案,我没有启用opcache: PHP 7,Symfony 3:致命错误1抽象方法,因此必须声明抽象或实现其余方法
任何猜测?请记住:此消息位于我未编写的文件中,并在Apache重新启动时消失.是否有一些PHP 7的缓存会导致这种情况?
编辑3/10/17:
是的,我用Slim打开了一张票.我也看到它在一个非苗条的文件(疙瘩),所以我不认为这是一个苗条的问题. https://github.com/slimphp/Slim/issues/2160
正如我所说,我的opcache已关闭.我已经确认这在php.ini文件和查看phpinfo()中都是正确的.
Mat*_*t S 11
我想你已经遇到了这个opcache错误.这不是完全相同的情况,但可能相关.
在调用opcache_reset()函数后,我们遇到了一些奇怪的错误.它在服务器上随机发生(400台服务器生产中的10台)
有些字母被其他人取代,类似乎已经宣布等等
opcache_reset()之后触发的错误示例:
- PHP致命错误:类XXX包含1个抽象方法,因此必须在第20行的/dir/dir/x.php中声明为abstract或实现其余方法(YYY :: funczzz)
 
故障单已关闭,因为开发人员没有足够的信息来重现它.如果你能想出最小的可重复的情况,我建议报告它.创建一个非常小的Slim应用程序,然后使用JMeter或其他工具发出许多请求.发表你的发现.
同时唯一的解决方法可能是关闭php.ini中的opcache:
opcache.enable=0
Run Code Online (Sandbox Code Playgroud)
当然这会严重损害性能.在修复之前,您必须在性能或定期重启Apache之间做出选择.
如果关闭缓存不起作用,那么我能想到的唯一原因是操作码编译器的间歇性问题.是否缓存编译版本必须有错误.如果这是原因,那么使用PHP开发人员打开可重现的票证或自己调试PHP源代码将是唯一的方法.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5103 次  |  
        
|   最近记录:  |