2017-10-29 5 views
0

Prestashop 1.7の動作方法を知り、Symfonyの経験があります。Prestashop LOG:オブジェクトとアレイのダンプを取得する

Symfony開発モードでは、[Symfony project url]/_profilerは、とりわけ要求内の変数のdump($someVariable)をチェックするのに便利です。 symfonyの_profilerを表示し、管理者モードに関する要求で何が起こっているかを分析すること[Prestashop project url]/admin[some random chain of chars]/_profilerを行うことが可能です管理者モードでPrestaShopの1.7

しかし、管理者モード外であれば(仮想店舗のデモモードで)

[Prestashop project url]/_profilerまたは[Prestashop project url]/[language value]/_profilerはsymfony _profilerは表示されません。

私はdefine('_PS_DEBUG_PROFILING_', true);[prestashop project]/config/defines.inc.phpにアクティブ化してPrestashop独自のプロファイラを試しました。 「仮想店のデモモード」の一番下にPrestashopプロファイラが表示されますが、dump($someVariable)は含まれていません。これは開発のために、Prestashopの動作を理解するためにhookAction[action name]にあります。 HTMLはなく、私が探していますものですhookAction[action name]を生成して

私はhookDisplay[display name]でのSymfony dump($someVariable)を得ることができました。私が見ることができるので、私はほとんど、symfonyは唯一の管理者側で使用されていることを感じているPrestaShopの1.7のコードを見てみると

UPDATE

[Prestashop project url]/admin[some random chain of chars]/index.php$kernel = new AppKernel(_PS_MODE_DEV_?'dev':'prod', _PS_MODE_DEV_);が、私は[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のプロジェクト]」で/モジュール/:私は今のところ見つけた

答えて

0

最善の解決策は、私は、ファイルを作成しました1 explained here

に似たカスタムロガーを作成することです[私のモジュール]/[私のモジュール] .php 'は、上に宣言されています。 include_once dirname(__FILE__).'/classes/CustomLogger.php';

あなたのコードにCustomLogger::log($[some variable]);を使用してください。

関連する問題