Глобальные файлы в MVC-PHP - PullRequest
       4

Глобальные файлы в MVC-PHP

0 голосов
/ 28 февраля 2012

Просто возиться с MVC в PHP в первый раз.Я следую простому учебнику, где я наткнулся на проблему, которая не упомянута в текущем учебнике: как правильно включить глобальные файлы (такие как верхний и нижний колонтитулы) в принципы MVC, если я хочу включитькакие-то специальные функции для каждой страницы (внутри верхнего и / или нижнего колонтитула)?

Скажем, у меня есть "страница журнала" и "домашняя страница", которая включает в себя footer.php.Однако на «странице журнала» я хочу добавить дополнительный текст в нижний колонтитул (для простоты).Создание отдельных файлов - это одно из решений, но оно кажется неудобным и нарушает принцип MVC.

Другое решение, возможно, состоит в том, чтобы передать $ _REQUEST из контроллера, который определяет, какое представление должно быть загружено в нижний колонтитул - но это опять-таки, кажется, нарушает MVC, поскольку, на мой взгляд, это логика приложения?

Третье решение, в которое я начинаю верить, является лучшим (имейте в виду, что я учусь!) - это передача данных из модели через контроллер в нижний колонтитул и заголовок таким же образом, как я это делаю.для просмотра страниц, таким образом, делая верхний и нижний колонтитулы по-своему.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

То, что вам нужно, называется Layout в MVC, и да, это представление.Вот соответствующий вопрос с ответом: Просмотр в MVC, что такое макет и как его создать

0 голосов
/ 28 февраля 2012

Поскольку это глобальные файлы, механизм включения не имеет ничего общего с шаблоном MVC. Хотя функции внутри этих верхних и нижних колонтитулов должны следовать шаблону MVC для их выполнения.

Одно решение, которое я могу придумать, это добавить это:

php_admin_value auto_prepend_file "/Path/to/header.php"
php_admin_value auto_append_file "/Path/to/footer.php"

в ваше определение VirtualHost.

И добавьте механизм включения представления, которое вы хотите включить в эти файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...