0

我试图在 CakePHP 上编码时将一个对象或一个数组转储到调试中。我一直在尝试各种命令,但老实说,我已经忘记了各种输出。我肯定看到了一个指示对象类型(CakeEmail)的输出,并且我看到了一个数组。不幸的是,我无法重新创建其中任何一个。

这是我正在使用的代码,并带有一些注释以指示肯定失败的命令。

public function _sendEmail($template, $replace_content, $to, $from = null)
{
    App::uses('CakeEmail', 'Network/Email');
    $this->Email = new CakeEmail();

    //Preparation of variables to insert into Email
    $this->Email->to($to);
    $this->Email->subject($subject);
    $this->Email->emailFormat('both');

    //Debugger::log($this->Email); //Worked - Shows certain output in file
    //Debugger::dump($this->Email); //Partial - Did not show any output in file, but did not fail to run.
    //Debugger::trace($this->Email); //Partial - Did not show any output in file, but did not fail to run.
    //Debugger::debug($this->Email); //Failed - function did NOT continue

    //dump($this->Email); //FAILED
    //trace($this->Email); //FAILED
    //debug($this->Email); //Partial - Did not show any output in file, but did not fail to run.

    //Debugger::log(">>log: ".$this->Email); //unable to show variable. Only heading string was output to file
    //Debugger::dump(">>dump: ".$this->Email); //Partial - Did not show any output in file, but did not fail to run.
    //Debugger::trace(">>trace: ".$this->Email); //NOT TESTED

    //Debugger::log(Debugger::dump($this->Email)); //Worked - Shows certain output in file - dump returns NULL
    //Debugger::log(">>log: headers: ".Debugger::dump($this->Email->getHeaders())); //Worked - Shows certain output in file - dump returns NULL
    //Debugger::log(">>log: headers: ".Debugger::dump($Email->getHeaders())); //FAILED - Undefined variable

    include 'dkim.php';
    $newHeader = AddDKIM($from_email, $to, $subject, $content);

    if (!empty($newHeader)) {
        Debugger::log ("newHeader is: $newHeader\n;Adding it to email.");
        $emailHeaders = $this->Email->getHeaders();
        Debugger::log ($emailHeaders);
        debug($emailHeaders);
        //$emailHeaders = $newHeader.emailHeaders;
        //Debugger::log($this->Email->getHeaders());
        debug ($emailHeaders);
    }
    else
        Debugger::log ("No new Header to Add.");

    $this->Email->send($content);
}
4

2 回答 2

0

我对 CakePHP 并不完全熟悉,但您可以使用 print_r($variable, true) 来返回字符串中的变量转储。然后,您可以在日志功能中使用它。

Debugger::log(">>log: ".print_r($this->Email, true));

于 2014-11-26T03:35:44.963 回答
0

Cake 有一个 print_r() 方便的函数,去吧:

pr($var_to_debug);
于 2014-11-26T08:24:20.597 回答