Просмотр повторного использования в CakePHP

#views #cakephp-1.3 #elements

#Вид #cakephp-1.3 #элемент

Вопрос:

У меня есть контроллер, который создает боковую панель. В середине боковой панели находится небольшой раздел данных о пациенте, который время от времени необходимо обновлять с помощью ajax. Итак, я создал элемент и функцию для этой конкретной области. Я использую requestAction для получения данных пациента для элемента при рендеринге всей боковой панели. Но, когда я выполняю ajax-запрос, я вызываю функцию данных пациента напрямую и возвращаю ее просмотр. Затем Ajax загружает div с данными из представления.

Я недоволен тем, что теперь у меня есть один и тот же точный код просмотра в двух местах. Один раз в представлении и один раз в элементе. В идеале, я уверен, что я должен использовать элемент для обоих. Я думаю, я мог бы создать другую функцию для вызова запроса ajax, которая просто выполняла бы requestAction для получения данных элемента. Но это кажется ненужным дополнительным слоем.

В Xaraya я бы избежал всего этого, просто используя представление данных пациента в виде боковой панели.

Как мне следует обращаться с этим, чтобы наиболее эффективно повторно использовать тот же код?

Ответ №1:

Вы правы, что вас беспокоит дублирующий код. Переместите все в элемент. Вызывайте элемент из ВСЕХ мест, где он вам нужен. Настройте его так, чтобы он работал в обоих случаях. Итак, в принципе, замените экземпляр view, чтобы также вызывать элемент. В этом вы правы.

Похоже, что ваша ошибка связана с «ненужным дополнительным слоем». Однако, если он сохраняет код чистым (удаляя дублирующийся код), действительно ли это ненужный дополнительный слой? Я бы сказал, что нет. Это делает его повторно используемым в нескольких местах, поэтому очень необходимым.

Похоже, вам следует доверять своим инстинктам. 😉

Приятного кодирования!