#php #oop #model-view-controller
#php #ооп #модель-представление-контроллер
Вопрос:
Да. Этот вопрос возник при просмотре Code Igniter, но на самом деле он не связан с code igniter из-за того, что каждое веб-приложение MVC php может столкнуться с этим.
Рассматривая MVC как дизайн приложения, давайте представим, что a view
разделен на partial views
. По умолчанию partial views
имеет свои собственные данные, как view
имеет свои собственные. Теперь мне было интересно: есть ли какая-либо причина не разрешать partial views
доступ к view
данным?
Ответ №1:
частичное представление предназначено для простоты разработки отдельного модуля или компонента во внешнем интерфейсе, которому, как предполагается, не нужны все глобальные параметры.
Для удобства использования кода и небольшой пропускной способности лучше разделить отправляемые параметры
Если вы действительно хотите, чтобы передавались все параметры, то просто выберите другой шаблон представления вместо частичного.
Ответ №2:
Я не бог ООП, но я использовал шаблон декоратора для построения представлений (свернул свой собственный, поскольку мне не нравятся шаблоны в codeigniter / zend и т.д.).
С точки зрения построения страницы (на мой взгляд) важно, чтобы частичные представления могли взаимодействовать с родительскими — если компоненту вашего частичного представления требуется какой-либо внешний ресурс (например, определенный файл javascript), он должен иметь возможность указать макету включить его в раздел head страницы, не имея доступа для внесения этого изменения.
Итак, я полагаю, что частичное представление НЕ должно иметь доступа к представлению, но должно взаимодействовать с ним, в противном случае вы создаете зависимость для этого частичного представления от этого представления, что может помешать использованию одного или обоих в другом месте.
Ответ №3:
В общем, хорошей идеей является предоставление в представление (или, в данном случае, частичное представление) только тех данных, которые ему необходимы для правильного отображения.
Это заставляет разработчиков немного подумать, прежде чем изменять какой-либо компонент, и предотвращает смешивание обязанностей между представлениями / частичными представлениями. Это также улучшает повторное использование, поскольку вы не рискуете, что вашему частичному представлению потребуется доступ к данным, которые могут отсутствовать в каждой ситуации, в которой используется частичное представление.
Ответ №4:
Ruby on Rails — ответ по умолчанию — нет. Частичные элементы могут рассматриваться как дочерние элементы соответствующего представления.
Могут возникнуть некоторые проблемы, если вы выполняете асинхронное редактирование данных — vodoo.
Кроме того, это делает его простым и глупым.. Частичное представление знает то, что знает представление…