CodeIgniter vs. CakePHP
Ниже находится перевод статьи Джонатана Снука (Jonathan Snook) о преимуществах и недостатках двух популярный PHP фреймворков CakePHP и CodeIgniter.
Прежде чем публиковать такого рода публикации, я обычно опасаюсь за всякого рода фанатиков, которые неадекватно реагируют на подобные сравнения. Поэтому стараюсь максимально объективно подойти к повествованию. Все выводы в статье сделаны только на основании фактов.
Я сопоставляю две эти платформы друг против друга, но безоговорочного победителя здесь нет. Обе имеют как сильные, так и слабые стороны, а так же полные провалы в той или иной опции, которая для вас может оказаться необходимой.
Зачем сравнивать?
CakePHP и CodeIgniter во многом очень похожи между собой, включая то, что оба поддерживают PHP4. Говоря о преимуществах одной платформы, мы тут же можем сослаться на сильные стороны другой.
Они обе дают возможность работать в парадигме MVC архитектуры, что просто означает их способность разделять Модель (данные), Контроллер (который направляет данные из модели, чтобы получить представление) и Вид (то, что видит пользователь).
Они обе используют роутинг, который дает возможность привязывать URL к определенной функции внутри контроллера (в CakePHP это называется actions). CodeIgniter поддерживает регулярные выражения для роутинга, в то время как нужно дожидаться релиза CakePHP версии 1.2 для поддержки этой функции. Поправка: CakePHP 1.1 уже поддерживает регулярные выражения для роутинга, но это не отражено в документации.
Они обе поддерживают scaffolding, который помогает автоматически сгенерировать Вид на основании Модели. В CodeIgniter scaffolding упрощен и позволяет получить доступ к подобному функционалу путем добавления ключевого слова в URL. Считаю это недостатком, т.к. часто разрабатываю персональные проекты не для публичного использования, и это ключевое слово надоедает.
Приступим…