Пытаясь понять MVC - я уже делаю это? - PullRequest
2 голосов
/ 04 апреля 2011

Я быстро становлюсь по колено в больших и больших приложениях, поэтому я подумал, что было бы неплохо узнать, что такое шаблоны, как они работают и т. Д. Итак, я смотрю несколько уроков на YouTube и читаю выходит несколько книг о шаблонах и принципах дизайна и MVC. Я слышал об этом, но никогда не понимал этого, и мне еще не приходилось использовать Zend, CodeIgniter или других, которые используют его по своей природе.

Во всяком случае, в процессе изучения темы MVC кажется, что я уже использую ее. Может кто-нибудь проверить? Вот как я обычно настраиваю приложение, используя систему входа в систему, например:

login.php - это HTML-страница, которая показывает форму. Форма отправляется на:

process.php - этот класс проверяет значение submit и на основе этого значения проверяет входные данные, проверяет пароль, отправляет соответствующие ошибки, если все является кошерным, он создает объект User:

user.php - это класс, который шаблонирует свойства и методы, которые понадобятся пользователю, включая такие вещи, как добавление пользователя в базу данных, получение информации о профиле, выход из системы, создание экземпляра объекта личного сообщения от пользователя, устанавливает необходимые переменные сеанса и т. д. Затем информация возвращается в process.php, который затем перенаправляет заголовок обратно на главную страницу с успешным входом в систему.

Так ... это простой MVC? В моем исследовании логин звучит как вид, процесс - как контроллер, а пользователь - как модель. Я уверен, что здесь есть немного больше глубины, но я действительно пытаюсь обдумать это, поэтому любые изменения в моей логике более чем приветствуются. Спасибо.

Ответы [ 3 ]

2 голосов
/ 04 апреля 2011

Ваши 3 страницы звучат очень похоже на MVC.Однако всегда полезно использовать такую ​​среду, как Codeigniter или Zend, чтобы заставить вас писать более строгий и поддерживаемый код.

2 голосов
/ 04 апреля 2011

MVC - это способ разделения трех основных частей приложения в целях повышения удобства сопровождения и, как правило, повышения производительности.

Например, если вы используете PHP 5.3 (вам следуетпоздняя статическая привязка, пространства имен и т. д. очень полезны!), вы можете использовать пространство имен для каждого из разделов вашего приложения.Затем, когда у вас есть ошибка в логике приложения, вы точно знаете, что вам нужно перейти к модели для конкретного действия и исправить ее.

Представления позволяют нам отделить логику отображения от бизнес-логики приложения.Некоторые могут использовать XHTML со встроенными <?php echo $myVar; ?> вещами, в то время как другие предпочитают шаблоны.Это означает, что когда вы редактируете GUI или другую внешнюю часть вашего приложения, это никогда не окажет какого-либо влияния на ваш бизнес.также модулирование вашего приложения.Еще лучше, если вы используете автозагрузчик (всегда используйте spl_autoload_register('myAutoloader') вместо function __autoload($className), так как это может быть изменено библиотеками и другими вещами), так что ваше приложение загружает только то, что нужно, когда это необходимо.

2 голосов
/ 04 апреля 2011

Короче говоря, да, то, что у вас есть, это базовые основы паттерна MVC.

Одна часто упоминаемая фраза в парадигме MVC - "толстая модель, тощий контроллер".Как правило, ваши проверки должны быть сделаны в объекте модели.Контроллер должен быть максимально легким.

...