goo*_*e77 8 php caching zend-framework
我今天遇到了一个有趣的问题.我们有一个利用Zend Frameworks缓存功能的应用程序.对此应用程序的请求通常使用以下行调用工厂方法
$result = call_user_func_array(array("myclass", "factory"), array($id));
Run Code Online (Sandbox Code Playgroud)
我们的想法是从我们稍后可以访问的工厂方法返回一个对象.当我们实现缓存功能时,这个调用就好了.没有错误,只是一个白色的屏幕.错误日志中没有任何内容.我们可以在ok之前错误地记录该行,但是在factory方法中尝试error_log什么都不做.
有趣的是,将线路改为:
$result = call_user_func(array("myclass", "factory"), $id);
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
我们花了几个小时寻找错误报告,并没有提出太多解释这种行为.想什么?
我遇到过这样的问题,当通过 PHP 命令调用尚未加载的类时,__autoload 无法正确触发。据我所知,除了愚蠢的尝试和错误之外,没有其他策略,只需尝试在 PHP 命令之前是否有一行显式调用该类即可为您解决问题。
$dummy = new MyClassName;
call_user_func_array(array('MyClassName', 'method'), array($id));
unset($dummy);
Run Code Online (Sandbox Code Playgroud)