5

現在、私は NetBeans IDE を使用しています。これには、変数が定義されているがそのスコープで使用されていないかどうかを示す非常に優れた機能があります。これは、古いコードがたくさんあり、そこから無駄なビットを削除しようとしている場合に非常にうまく機能します。

同じことを行うツール/サービス/何かがありますが、コントローラーに設定されているがビューでは使用されていない変数を見つけます。全自動である必要はありません。

たとえば、コントローラーに次のものが含まれているとします。

$this->set(array(
     'variable1' => $variable1,
     'variable2' => $variable2
)); 

ビューは次のようになります。

<p>Peter ate <?php echo $variable1; ?> apples.

強調表示するか、その他の方法で識別しますvariable2(レイアウトでも使用されない場合)。

4

4 に答える 4

7

コードベースでPHP Mess Detectorを実行してみてください。

そのための Netbeansプラグインさえあります。CakePHP のソース自体で実行しないでください。そうしないと、実際にどれほどひどく壊れているかを明確に理解できます。

逆効果かも。そして、あなたに宗教的性質の認知的不協和を引き起こします。

于 2012-11-08T18:48:51.347 に答える
1

これを行う方法は 1 つしか考えられません。毎回このように行うと、モーダルを介してビューに渡されたパラメーターのみを追跡できます。

ArrayAccess を実装するクラスを作成します。次に、offsetGet() メソッドを使用すると、配列内でアクセスされた変数 (この場合、どの変数が「使用」されたか) を追跡できます。次に、__destruct() マジック メソッドを使用して、未使用の変数の通知をトリガーします:D

これを行うと、使用されていないモーダルから渡された正確な変数がわかりますが、次の場合にのみ使用できます。

  • クラスのインスタンスを使用して、モーダルからビューにすべてのビュー パラメーターを追加します (配列アクセスを使用するため、$vars['name'] = 'scott' などを実行できます)。
  • ビューは、次のようにオブジェクトから変数に直接アクセスする必要があります: $params['name'] そして、extract や $$ などを使用して変数を再作成しないでください。

申し訳ありませんが、それはよりクリーンなソリューションではありませんが、今私が考えることができるのはそれだけです(午前3時30分です)。

于 2012-11-18T03:37:54.000 に答える
0

私はしばらく CakePHP を使用していませんでしたが、ビューで以下を使用してすべてのビュー変数を出力できたことを思い出します

<?php pr($this->_viewVars); ?>

CakePHP ビューで未使用のビュー変数を検出するツールを構築したい人にとっては、良い出発点になるかもしれません。

于 2012-11-17T02:10:09.707 に答える
-3

を印刷するだけ$GLOBALで、利用可能なすべての変数が表示されます。

于 2012-11-08T18:36:21.590 に答える