PHP MVC - Как разработать?

Для простых программ Python Вы, вероятно, не должны использовать яйца. Распределение сырых данных .py файлы должно быть достаточным; это похоже на распределительные исходные файлы для GNU/Linux. Можно также использовать различную ОС "поставщики программного блока" (как py2exe или py2app) для создания .exe, .dmg, или других файлов для различных операционных систем.

более сложные программы, например, Django, в значительной степени требуют яиц из-за различных модулей и требуемых зависимостей.

5
задан Adergaard 11 October 2009 в 10:41
поделиться

3 ответа

Прежде всего, это не вопрос, связанный с php, а скорее вопрос о том, как применить шаблон MVC к веб-программированию. И действительно, шаблон MVC имеет такой смысл в области разработки веб-приложений, что он стал почти обязательным в этой области приложения.

Теперь, что касается самого шаблона MVC, вы уже найдете очень хорошие ответы на SO. . Например, вопросы и ответы Что входит в контроллер .

Что касается вопроса о том, как сопоставить структуру вашего веб-сайта с архитектурой вашего контроллера, я бы порекомендовал следующее.

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

Так, например, если в вашем случае gameoverview представляет собой просто список, ему не нужен собственный контроллер, а скорее всего лишь метод в indexcontroller, который получает список из модели и отправляет его в соответствующее представление. Но если ваш gameoverview представляет собой сложный механизм с множеством возможностей и различными подпредставлениями и т. Д., У вас может быть overviewController с несколькими методами для разных представлений и задач.

Я действительно рекомендую изучить Zend Framework и то, как там решаются эти проблемы. ИМО, вы можете действительно многое узнать о теме своего вопроса, сделав это.

t нужен собственный контроллер, а скорее это просто метод в indexcontroller, который получает список из модели и отправляет его в соответствующее представление. Но если ваш gameoverview представляет собой сложный механизм с множеством возможностей и различными подпредставлениями и т. Д., У вас может быть overviewController с несколькими методами для разных представлений и задач.

Я действительно рекомендую изучить Zend Framework и то, как там решаются эти проблемы. ИМО, вы можете действительно многое узнать о теме своего вопроса, сделав это.

t нужен собственный контроллер, а скорее это просто метод в indexcontroller, который получает список из модели и отправляет его в соответствующее представление. Но если ваш gameoverview представляет собой сложный механизм с множеством возможностей и различными подпредставлениями и т. Д., У вас может быть overviewController с несколькими методами для различных представлений и задач.

Я действительно рекомендую изучить Zend Framework и то, как там решаются эти проблемы. ИМО, вы можете действительно многое узнать о теме своего вопроса, сделав это.

Я действительно рекомендую изучить Zend Framework и то, как там решаются эти проблемы. ИМО, вы можете действительно многое узнать о теме своего вопроса, сделав это.

Я действительно рекомендую изучить Zend Framework и то, как там решаются эти проблемы. ИМО, вы можете действительно многое узнать о теме своего вопроса, сделав это.

3
ответ дан 15 December 2019 в 01:06
поделиться

CodeIgniter - отличный инструмент для начинающих MVC, Я предлагаю вам взглянуть на net.tutsplus.com , там есть продолжающийся видеоурок по CodeIgniter

добавлен

для начинающих, желающих погрузиться в CI, ссылки на видео:

добавлен

Я не рекомендую CI как отличный и мощный фреймворк, но он прост для новичков , и они могут многому у него научиться, лично я сторонник Symfony и Yii

1
ответ дан 15 December 2019 в 01:06
поделиться

Википедия, вероятно, лучше объяснит это, но в основном

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

ваш контроллер обрабатывает запросы на изменение модели.

ваше представление - это отображение части модели и обратная связь от контроллера.

Ни контроллер, ни модель не должны обрабатывать отображение. дисплей. Ни модель, ни представление не должны обрабатывать входящие данные POST и т.п. Ни контроллер, ни представление не должны иметь дело с источниками данных.

см. http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#Description за хорошее описание ролей.

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

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

Единственное взаимодействие между представлением и контроллером - это отображение обратной связи.

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: Как отмечали другие, уже создан ряд фреймворков MVC. (См. Список http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#PHP ), и я бы не советовал быть слишком привязанным к фреймворк, который вы уже создали, если есть другой, который работает лучше.

0
ответ дан 15 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: