Что такое хорошая среда PHP для переноса существующего приложения? - PullRequest
3 голосов
/ 13 октября 2011

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

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

Есть ли хороший фреймворк, в котором я могу просто добавить плагин, чтобы я мог использовать библиотеки моделей и, возможно, позже, интегрировать больше приложений в фреймворк? Будет ли Doctrine хорошим инструментом для чего-то подобного? Или я должен просто настроить свои собственные модели, не полагаясь на сторонние библиотеки?

Ответы [ 4 ]

4 голосов
/ 13 октября 2011

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

Вместо того, чтобы пытаться найти какую-то магическую структуру, вы должны инвестировать в рефакторинг (применять некоторые принципы ООП, такие как SOLID ) и документировать существующий код. Может начать постепенно добавлять несколько юнит-тестов.


P.S. Doctrine - это ORM (1.x реализует activerectord, 2.x - что-то вроде datamapper). ORM предназначены для людей, которые чрезвычайно ленивы, ошибочны или не понимают SQL. Перемещая существующие запросы SQL в код ORM, вы сделаете все это только медленнее. Кроме того, вы столкнетесь с проблемами при переносе сложных запросов. Просто не делай этого.

1 голос
/ 13 октября 2011

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

0 голосов
/ 18 октября 2011

Я мигрирую сайт, используя Zend и Doctrine2.Сайт не был ООП в каком-то смысле, но он был разделен между логическим представлением и dal.Миграция все еще находится в процессе (новые функции кодируются с помощью фреймворка, существующая функция переносится только при необходимости больших изменений).

Обе фреймворки не навязчивы, и самое ценное, что вы получите для меня, это стандартизациявещи.

0 голосов
/ 13 октября 2011

Если вы хотите использовать только MVC (не HMVC или более сложные) фреймворки для простого внедрения в существующее приложение, вам следует нажать CodeIgniter.ActiveRecords очень просто рефакторинг из существующих sql-запросов.Вы даже можете использовать стандартные или созданные вручную функции или классы для построения запросов в своих моделях.

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

...