интеграция CakePHP или CodeIgniter в существующие проекты - PullRequest
1 голос
/ 08 января 2012

У меня есть проект, который я взял на себя. это приложение, которое создавалось на протяжении многих лет с использованием PHP и mysql.

В настоящее время он имеет хорошую структуру папок, но сам код написан очень плохо. Практически в каждом файле есть операторы php, sql и html-код. Существует код javascript, сгенерированный с использованием php echo без причины и т. Д.

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

возможно ли интегрировать одну из этих платформ в существующее приложение? какой из них проще? есть ли у вас ссылки как это сделать?

спасибо.

Ответы [ 2 ]

2 голосов
/ 08 января 2012

У меня очень мало опыта работы с CakePHP, поэтому мой ответ будет о CodeIgniter.Я играл с CakePHP около дня, и это было почти два года назад.По моему мнению, вероятно, будет легче интегрироваться с CodeIgniter, хотя кто-то, кто имеет более опытный опыт работы с CakePHP, может доказать, что я не прав.

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

  1. Сначала начните с новой установки CodeIgniter с использованием последней версии.

  2. Затем создайтеконтроллеры и действия (методы контроллера), которые отражают текущую структуру приложения.Например, если бы у вас была страница с URL http://example.com/users/view, вы бы создали контроллер Users с методом view().

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

  4. После того, как приложение будет установленоВ верхней части CodeIgniter начните рефакторинг, чтобы он соответствовал шаблону MVC.Извлеките логику приложения (запросы, обработку форм и т. Д.) Из файлов представлений и поместите их в контроллеры.Сохраняйте всю логику представления и HTML в представлениях.

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

  6. Продолжайте рефакторинг вашего приложения, пока оно не будет в работоспособном состоянии, которым вы довольны ...

Надеюсь, это поможет.Я, конечно, пропустил некоторые важные шаги, такие как установка и настройка CodeIgniter, но если вы серьезно относитесь к этому, я настоятельно рекомендую прочитать CodeIgniter User Guide , чтобы получить хорошее представление о том, как это работает.Вам также следует ознакомиться с MVC (модель-представление-контроллер), если вы этого еще не сделали.

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

0 голосов
/ 08 января 2012

По-моему, проще просто написать свои контроллеры в CodeIgniter (я никогда не использовал CakePHP) и модели, чем просто скопировать вставить с некоторыми корректировками представлений.

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