1

Cake のビュー ファイルの 1 つが非常に長くなり、すでに 300 行以上あります。そして、理解を追跡することは非常に難しいと思います。

それらを小さなファイルに分割してから、親ビュー ファイルに含めることをお勧めしますか?

実行しても問題ない場合は、

  1. 小さいファイルはどの拡張子で作成すればよいですか? .ctp または .php?
  2. それらを require_once(view-child1.ext) で含めても問題ありませんよね?

CakePHP はかなり新しいものです。だから私はここの専門家からのアドバイスを好む. 私を正しい方向に向けてください。

編集

助けてくれてありがとう。

私はそれを試してみました。しかし、変数を渡すことができないようです。echo $this->Element('reviews/view-goal',$history); 親ビューには、その要素の変数が未定義であるというエラーが表示されます。

このループから要素を呼び出しています:

foreach($histories as $date => $history)

$history を渡すことができません。しかし、 $history は正しく渡されています。

4

2 に答える 2

1

はい、それはとても良い考えです。require()ただし、通常の PHPは使用しないでください。

CakePHP には"elements" と呼ばれる機能.ctpがあり、ビューの一部を別々のファイルに入れるメカニズムです。ファイルは特別なフォルダーに移動し、View/Elements

次のような要素を含めることができます。

echo $this->element('sidebar/recent_comments');

要素内に変数が必要な場合は、追加の配列パラメーターでそれらを渡す必要があります。

echo $this->element('sidebar/recent_comments', array('variable_name' => /* Variable content */));

ビュー ファイルを小さく保つために、ほとんどのページで共有されるもの (ヘッダー、フッター) をレイアウトファイルに入れることも確認する必要があります。そして明らかに: JS と CSS を外部ファイルに保持します。

于 2012-08-19T16:25:38.973 に答える
1

拡張子View/Elements付きのフォルダーに要素を作成する必要があります。.ctp

このリンクは、関連する/繰り返されるコードでビュー ファイルをきれいに分離するのに役立ちます。

要素は基本的に、他のビュー、レイアウト、さらには他の要素内に含めることができるミニビューです。要素を使用してビューを読みやすくし、繰り返し要素のレンダリングを独自のファイルに配置できます。また、アプリケーションでコンテンツ フラグメントを再利用するのにも役立ちます。

要素は /app/View/Elements/ フォルダーにあり、ファイル名拡張子は .ctp です。これらは、ビューの要素メソッドを使用して出力されます。

<?php echo $this->element('helpbox'); //without extension ?>

ビューから要素に変数を渡すことができます。

あなたの見解では:

 <?php echo $this->Element('reviews/view-goal', array('history' => $history));

view-goal.ctp 要素では、変数に直接アクセスでき$historyます。

于 2012-08-19T16:27:22.840 に答える