(PHPスタイルのコードを使用)
文字列データの配列を含むコントローラーがあると想像しないでください。
class Controller {
private $data = array('a', 'b', 'c', 'd', 'e');
}
ここで、コントローラーはそのデータをViewに渡して、次のようなHTMLを生成する必要があります。
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
質問:
次のように、配列データを処理するために、すべての配列をViewに渡す必要があります。
class Controller {
private $data = array('a', 'b', 'c', 'd', 'e');
function __construct($data) { // Assigns data array to view
$view = new View;
$view->produceHTML($data)
}
}
class View {
public function produceHTML($data) {
foreach($data as $value) {
echo "<p>$value</p>" . PHP_EOL; // PHP_EOL - PHP Predifined constant (End Of Line)
}
}
}
または、次のように要素ごとに異なるビューを定義する必要があります。
class Controller {
private $data = array('a', 'b', 'c', 'd', 'e');
function __construct($data) { // Assigns data array to view
$view = new View;
$view->produceHTML($data)
}
}
class View {
public function produceHTML($data) {
foreach($data as $value) {
$this->produceP($value);
}
}
private function produceP($value) {
echo "<p>$value</p>" . PHP_EOL;
}
}
短いデータ値の使用は単なる例です。div
ほとんどの場合、ネストされた要素がたくさんある大きなビューを生成する、はるかに複雑なビューに遭遇しました。
しかし、要素のコレクションをViewに送信するためのベストプラクティスは何ですか?