1

私はYiiに悩まされており、現在、基本的に、さまざまなスケール(日、週、月ベースなど)に(ajax-)更新できるデータのグラフを作成しようとしています。私は本当にAmcharts-extensionを使いたいのですが、基本的にはEFlotのようなもっと単純なものでもかまいません。

さて、私の独特の問題に行かないために、私は拡張機能から(少なくとも私が試したものから)どんな種類のエラーやデバッグメッセージも生成できないようです。たとえば、不明な変数や不正な形式のデータをグラフウィジェットに渡そうとすると、何も表示されない空白のシートが描画されてしまいます。ここに何もないということは、スペースが予約されているが、グラフが描画されておらず、エラーメッセージがどこにも表示されていないことを意味します。

メイン設定で有効にしてCWebLogRouteいますが、ページに実際のYiiエラーが正しく表示されますが、拡張機能については何も報告されません。

では、Yiiで拡張機能をデバッグする適切な方法は何ですか?見逃した一般的なインターフェイスはありますか、それとも各拡張機能にはエラーを提供してデータをデバッグする独自の方法がありますか?

4

1 に答える 1

1

問題がサーバー側にあると思われる場合は、設定ファイル (デフォルトでは protected/config/main.php) でトレース ロギングをオンにできます。

'log'=>array(
    'class'=>'CLogRouter',
        'routes'=>array(
                array(
                    'class'       => 'CFileLogRoute',
                    'levels'      => 'error, warning, trace'
                ),

         ),
 ),

いくつかの Yii::trace() 呼び出しを拡張機能に追加します。

class MyExtension {
    public function whatever() {
        Yii::trace("Inside MyExtension::whatever()", "MyExtension");
        // do some stuff
        Yii::trace("Inside MyExtension::whatever(), just did some stuff.", "MyExtension");
    }
}

これにより、トレース呼び出しが application.log ファイルに挿入されます (デフォルトでは、これは protected/runtime/application.log にあります)。それらは次のようになります。

2013/02/21 15:35:43 [トレース] [MyExtension] MyExtension::whatever()
内 /path/to/MyExtension.php (3) 2013/02/21 15:35:43 [トレース] [MyExtension ] MyExtension::whatever() の内部では、/path/to/MyExtension.php でいくつかの処理を行いました (5)

必要なものは何でもトレースに入れます。ブラウザから送信していると思われるデータが、実際に目的の関数に、期待どおりの形式で到達していることを確認することから始めます。すべてが正常に見える場合は、Web インスペクターを起動して (Chrome の方が好みです)、[ネットワーク] タブを確認します。サーバーへのリクエストと配信されたレスポンスを見てください。また、JS コンソールをチェックして、そこで何も壊れていないことを確認します。

于 2013-02-21T21:24:13.477 に答える