В CodeIgniter я создаю отдельный вспомогательный файл, в который помещаю функции, которые возвращают разметку для элементов пользовательского интерфейса, которые, возможно, потребуется включить несколько раз в одно представление.
В вашем примере я бы создал функцию для возврата разметки для заметки.
применение / хелперы / view_helper.php
function note($note)
{
return '<div class="note">' .
'<h2>' . $note->title . '</h2>' .
'<p>' . $note->contents . '</p></div>';
}
Я бы обычно автоматически загружал этот вспомогательный файл. И тогда, по мнению, я бы сделал что-то вроде этого.
echo note($note);
Для списка заметок в представлении я бы повторил список, вызывающий эту функцию.
<div class="note-list">
<?php foreach ($notes as $note) : ?>
<?php echo note($note); ?>
<?php endforeach; ?>
</div>
Я обнаружил, что включение многократного представления в другое представление было медленным. Вот почему я так сделал.
Редактировать
Я только что копался в классе CodeIgniter Loader и уверен, что включение PHP происходит каждый раз, когда вы вызываете
$this->load->view('view_name');
Это означает, что если вы используете этот метод для отображения списка из 20 заметок, вы будете делать 20 отдельных включений.