尝试调试cake core生成的对象时,全新安装时内存耗尽错误

时间:2014-01-18 14:00:57

标签: cakephp cakephp-2.3

Error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 118015334 bytes) 
File: /var/www/composer.cakePHP/Vendor/pear-pear.cakephp.org/CakePHP/Cake/Utility/Debugger.php  
Line: 611

CakePHP 2.4.3的全新安装我无法调试$ this或$ this->表单或任何此类性质。我有另一个安装蛋糕2.1和调试这些变量工作得很好。我可以在应用程序中调试基本变量,但如果我想查看实例化的cake对象..不要去。

这是我的AppController配置:

    class AppController extends Controller {
    public $helpers = array('Html', 'Form', 'Session');
    public $components = array(
            'Acl',
            'Session',
            'Auth' => array(
                    'authorize' => array(
                            'Actions' => array('actionPath' =>     'controllers')
                    )
            ),
            'DebugKit.Toolbar'
    );

    public function beforeFilter() {
        parent::beforeFilter();
        //Configure AuthComponent
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' =>     'login');
        $this->Auth->loginRedirect = array('controller' => 'adminHomes', 'action' =>     'index');

        //$this->Auth->allow('display');
        //$this->Auth->allow();
        return true;
    }
    }

2 个答案:

答案 0 :(得分:1)

您可以尝试增加内存,直到您能够看到变量包含的内容为eq:ini_set('memory_limit','512M');

然而,$ this,$ this-> Form是非常大的对象,您不必调试它们。

您是否尝试过the Debugger class

答案 1 :(得分:1)

这是因为对象链可以包含循环引用,并且尝试打印它们会导致无限循环。对于没有尝试调试此类对象实例的期望,没有真正的解决方案。另外,正如@cornelb指出的那样,尝试调试$this$this->Form会输出如此多的信息,因此很难确定有用的调试信息。