Prestashop 预转储日志:获取对象和数组的转储
我正在研究Prestashop 1.7是如何工作的,我对Symfony有一些经验 在Symfony开发模式下,Prestashop 预转储日志:获取对象和数组的转储,prestashop,symfony-2.8,prestashop-1.7,Prestashop,Symfony 2.8,Prestashop 1.7,我正在研究Prestashop 1.7是如何工作的,我对Symfony有一些经验 在Symfony开发模式下,[Symfony项目url]/\u profiler用于检查请求中变量的转储($someVariable) 当Prestashop 1.7处于管理模式时可以执行[Prestashop项目url]/admin[一些随机字符链]/\u profiler来显示Symfony\u profiler并分析与管理模式相关的请求中发生的情况 但是如果在管理模式之外(在虚拟商店演示模式下,[Presta
[Symfony项目url]/\u profiler
用于检查请求中变量的转储($someVariable)
当Prestashop 1.7处于管理模式时可以执行[Prestashop项目url]/admin[一些随机字符链]/\u profiler
来显示Symfony\u profiler
并分析与管理模式相关的请求中发生的情况
但是如果在管理模式之外(在虚拟商店演示模式下,[Prestashop project url]/\u profiler
或[Prestashop project url]/[language value]/\u profiler
不显示符号\u profiler
我已经通过激活define(“PS\u DEBUG\u PROFILING”,true)尝试了Prestashop自己的分析器
在[prestashop project]/config/defines.inc.php
中。它在“虚拟商店演示模式”的底部显示Prestashop profiler,但此模式不包括转储($someVariable)
,可用于开发和了解Prestashop行为,在钩住动作[动作名称]
中
我已经通过生成的HTML获得了Symfonydump($someVariable)
和hookDisplay[display name]
,但不是在hookAction[action name]
中,这正是我所寻找的
更新
查看Prestashop 1.7代码,我几乎感觉到Symfony只用于管理端,因为我可以看到:
$kernel=new-AppKernel(\u-PS\u-MODE\u-DEV?'DEV':'prod',\u-PS\u-MODE\u-DEV)在[Prestashop project url]/admin[一些随机字符链]/index.php
中,我没有看到它,但在[Prestashop project url]/index.php
中,我找到的最佳解决方案是创建一个类似于
我已经创建了文件:[Prestashop project]/modules/[my module]/classes/CustomLogger.php
<?php
class CustomLogger {
const DEFAULT_LOG_FILE ="prestashop_system.log";
public static function log($message, $level = 'debug', $fileName = null){
$fileDir = _PS_ROOT_DIR_ . '/log/';
$fileName=self::DEFAULT_LOG_FILE;
if(is_array($message) || is_object($message)){$message = print_r($message, true);}
$formatted_message=$level." -- ".date('Y/m/d - H:i:s').": ".$message."\r\n";
return file_put_contents($fileDir . $fileName, $formatted_message, FILE_APPEND);
}
}
?>
在“[Prestashop project]/modules/[my module]/[my module].php”的顶部声明:
include_once dirname(__文件)'/classes/CustomLogger.php'代码>
并使用CustomLogger::log($[some variable])代码>在您的代码中