PHP MVC Framework Design - PullRequest
       8

PHP MVC Framework Design

3 голосов
/ 06 декабря 2009

Я столкнулся с проблемой, которую сам не могу решить:

Я начал кодировать «маленький» фреймворк (browsergame-framework), который каким-то образом следует шаблону MVC.

Теперь у меня есть свой индекс, начальная загрузка, адаптер БД, диспетчер, обертка, но я не знаю, «как» связать их. Я закодировал их методы и т. Д., Но я не знаю, как заставить их работать как двигатель.

И следующая проблема - мои контроллеры, я не знаю, как "связать" их, чтобы они могли легко получить доступ ко всей структуре .... Да, это сбивает с толку, поэтому мне нужна ваша помощь, какая-то общая схема «как должен работать поток программных фреймворков» была бы очень хороша.

Спасибо.

1 Ответ

7 голосов
/ 06 декабря 2009

ты ставишь телегу перед лошадью. рамки не написаны, они выросли. см. Развивающиеся рамки от Ральфа Джонсона, одного из Банды четырех.

редактировать

Я не понимаю, что автор имеет в виду под "приложением", делает это означает raw-coded-project или это означает проект с базовой функциональностью который будет перенесен в более поздние рамки.

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

Допустим, вы хотите, чтобы инфраструктура облегчала написание на основе браузера, пошагового стратегии.

Ваш первый ход - написать такую ​​игру, не думая повторно использовать код вне этой одиночной игры, но с вниманием к повторному использованию кода в это: беспощадно рефакторинг, применять все принципы программирования: OCP , SRP , DRY и т. Д. Особенно DRY. Повторное использование кода (не повторять себя) является основной принцип программирования, и первый шаг на пути к фреймворк. Вы получите библиотеку классов и / или функций которые используются в игре.

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

Повторите процедуру с третьей игрой.

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

Джонсон:

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

Внимательно прочитайте раздел «Три примера».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...