Существует ли инфраструктура MVC PHP, предназначенная для упакованного продукта? - PullRequest
1 голос
/ 26 января 2011

Вопрос «Рамки» задавался здесь несколько раз, но, прочитав все, что я могу найти, я не могу найти ответ на этот вопрос.

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

Мне просто кажется, что фреймворки были разработаны в основном для сверхбольших проектов, где они предназначены для одного клиента, а не для выпущенной программы. Кажется, что все большие упакованные php-продукты создают свои собственные фреймворки (vbulletin и т. Д.).

Ответы [ 3 ]

2 голосов
/ 26 января 2011

будет куча ненужных папок

Эти ненужные папки хранятся в одной папке и необходимы для работы фреймворка. Это проблема объемом 10, 20, 200 Мб? Хранение дешево в наше время, почему это важно?

требуется любой, кто хочет изменить моя программа, чтобы знать рамки

Ты понял! Это преимущество, а не неудобство. Если этого не произойдет, парень, который будет читать ваш код, должен понимать ваши привычки, ваше соглашение, и они, вероятно, не так часто встречаются. Если вы можете написать непротиворечивый код, следуя любым соглашениям, почему бы и нет. Но это также может дать вашему клиенту реальную выгоду, так как он знает, что любой может забрать вашу работу, если вам придется уйти по каким-либо причинам.

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

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

Мне просто кажется, что рамки были предназначены в основном для очень больших проекты.

Zend или Code Igniter хорошо подходят для проектов среднего размера, со временем вы разработали расширения фреймворка, и вы сможете сэкономить время и ошибки в небольших проектах.

Кажется, что все большие упакованные PHP продукты там делают свои рамки (вбулетин и др.).

PHP-фреймворки - молодые, большинству из них 3/4 года (Zend, Symfony). Многие приложения, такие как Vbulletin, старше.

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

Joomla, Drupal, Wordpress имеют свои собственные фреймворки (процедурные или объектные), но они больше ориентированы на конечного пользователя.

Однако такое решение, как Magento, которое использует Zend Framework, предназначено для расширения и очень настраиваемо с помощью расширений.

2 голосов
/ 26 января 2011

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

Одно решение: создайте свой собственный фреймворк, выделите код из других фреймворков и используйте нужные вам части. Если вы можете, больше ориентируйтесь на использование библиотек, ориентированных на конкретные задачи, которые вам нужны Например. ORM для баз данных, вы также можете использовать доктрину, так как ее область знаний очень сфокусирована. Просто в качестве примера.

В любом случае, если вы все сделаете правильно, вам придется потрудиться заранее, пытаясь выяснить, что вам даже нужно. Начните с основ, как работают ваши контроллеры, нужна ли вам полная реализация MVC с фронтальными контроллерами, контроллерами действий, может быть, контроллерами страниц для CMS? Где можно срезать углы, а где нет? Это действительно во многом зависит от того, что вам нужно для вашего конкретного продукта (или палитры продуктов).

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

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

2 голосов
/ 26 января 2011

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

Одна из них приходит на ум: http://www.kissmvc.com.

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

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