У меня есть приложение, построенное на основе шаблона MVC.Представление php, но в основном html с минимальным встроенным php-кодом, например:
Welcome <?php echo $USERNAME ?>
и
<table>
<?php foreach ($USERS as $row) : ?>
<tr><td><?php echo $row->name ?><td><?php echo $row->address ?></tr>
<?php endforeach ?>
Мне нужна только логика отображения макета в этом файле, и я хочубудь проще!
Это в основном работает для меня, но я борюсь за некоторые определенные аспекты.Например, посмотрите на таблицу в приведенном выше коде и представьте, что каждый столбец (имя и адрес) имеет заголовок NameAddress
Теперь представьте, что я хочу сделать столбцы сортируемыми.Поэтому я делаю что-то вроде -
<tr><th><a href="?sort=name">Name</a><td><a href="?sort=addr">
Но этого недостаточно.Мое представление должно посмотреть, по какому столбцу сортируются, и добавить стрелку вверх или вниз.Нужно изменить ссылку на отсортированный в данный момент столбец на? Sort = name_reverse, если этот столбец уже отсортирован, поэтому щелчок по нему сортирует его другим способом.Теперь это слишком сложно, чтобы написать хороший аккуратный код в моем шаблоне ...
Так что я могу заставить свой контроллер создавать переменные, содержащие -
<tr><th><?php echo $HEADING[0] ?><th><?php $HEADING[1] ?>
и т. Д.НО это означает, что мой контроллер теперь генерирует настоящий HTML, который действительно является обязанностью шаблона страницы.Это устраняет возможность шаблона форматировать страницу несколькими различными способами ... И просто чувствует себя не так.
Но как мне лучше всего с этим справиться, когда я чувствую, что мой контроллер страницы должен генерировать переменные, содержащиеHTML ...
Есть предложения?