У меня есть приложение, построенное вокруг шаблона 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...
Любые предложения?