Я относительно новичок в объектно-ориентированном программировании. Я в значительной степени понимаю понятия, но, на самом деле, мне очень сложно найти информацию о том, как наилучшим образом использовать модели в своих приложениях Zend Framework.Zend Framework: использование моделей и представлений, лучшие практики
В частности, у меня есть модель (которая не распространяется ни на что), которая не использует таблицу базы данных. Он использует геттеры и сеттеры для доступа к своим защищенным членам. Я считаю, что борюсь с тем, как лучше всего отображать эту модель в представлении. Я не хочу логики в моих шаблонах, но я считаю себя в следующей ситуации:
В моем контроллере:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
В моем шаблоне вида:
<h2><?= $this->object->getName() ?></h2>
Я не» Мне очень нравятся функции вызова в моих шаблонах, но я не знаю, как это сделать. Я не хочу, члены моей модели, чтобы быть открытыми, но я в принципе хочу, чтобы достичь тех же результатов:
<h2><?= $this->object->name ?></h2>
Я не хочу, чтобы мой контроллер сделать всю работу того, чтобы знать все о модели:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
Какова наилучшая практика использования моделей в Zend Framework? Может ли кто-нибудь порекомендовать какой-либо учебник, который поможет мне понять эту дилемму Model/View в Zend Framework?
Это на самом деле плохой способ делать что-то. Вы не только произвольно получаете доступ ко всем свойствам, независимо от того, являются ли они теми, которые должны быть (un) сериализованы в/из формы или нет, а также перегружают модель концепцией сопоставления, что и требовалось. – Saem
Ввод логики формы в модель смешивает представление и модель, которая также является плохой формой. И, как я уже сказал, переопределение поведения по умолчанию очень простое и позволяет избежать необходимости создания глупых шаблонных геттеров и сеттеров. –
И если вы посмотрите на класс Zend_Db_Table_Row, вы обнаружите, что Zend фактически использует аналогичный принцип, чтобы выставлять поля и их значения из таблиц. –