Какой фреймворк мне следует использовать для обеспечения лучшего долгосрочного обновления / ремонтопригодности, CakePHP или CodeIgniter?

StackOverflow https://stackoverflow.com/questions/255082

Вопрос

Я выбираю фреймворк для тестирования на PHP.Я сузил круг поисков до CakePHP и CodeIgniter.У меня есть пара вопросов к любому из вас, кто использовал или знаком с обоими:

  1. Мне нравится тот факт, что CakePHP по умолчанию хранит большую часть кода за пределами webroot.Тем более, что в конечном итоге я могу использовать одну установку фреймворка для нескольких приложений.Я вижу, что CodeIgniter тоже это сделает, но вы должны настроить его и кое-что переместить.Является ли это обходное решение безопасным и надеж-ным, или это запоздалый взлом?

  2. Что (если не оба варианта) проще модернизировать и поддерживать в течение длительного времени?По мере выхода новых версий фреймворка (и самого PHP).Я не хочу, чтобы мои вещи либо ломались, либо устаревали.

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

Это очень старый пост, но я подумал, что обновлю его тем, что я в конце концов сделал, а именно использовал Kohana.

Это было полезно?

Решение

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

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

Чтобы решить ваши проблемы:

1) Cake и CI делают это таким же образом (iirc).Они одинаково безопасны, безотказны и халтурны на этом фронте.

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

Другие советы

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

  1. это не проблема.

  2. За CodeIgniter стоит спонсор, так что это определенно тот, кого стоит выбирать на долгосрочную перспективу.Кроме того, это быстрее.

  1. Это не проблема.В приложении есть пара строк, в которых говорится, где находится ядро и код вашего приложения.Вам просто нужно изменить эти строки.

  2. Вы никогда не сможете предвидеть этого.

Состояние PHP здесь является подстановочным знаком.Одно приложение (CI) создано для совместимости с PHP4, для другого требуется PHP5.Если вам нужно иметь дело с возможностью веб-хостинга, поддерживающего только старые версии PHP, тогда вам нужно обратиться к CO.

Другая проблема - модульное тестирование.Если вам требуется, чтобы ваш фреймворк поставлялся с тестами, то CI - это не тот путь.

Лично я чувствую себя комфортно с CI из-за корпоративной поддержки.Компания, стоящая за CI, получает реальную прибыль от их усилий.Хотя CI является бесплатным, их платный продукт (ExpressionEngine) в конечном итоге будет работать на CI.То же самое можно было бы сказать о Zend Framework и даже о рождении Rails (изначально созданных для Basecamp).

Небольшое исправление к приведенному выше комментарию:оба совместимы с PHP4, а не только с CI.Кроме того, я не думаю, что наличие спонсора делает CI and более или менее обновляемым или ремонтопригодным.Деньги ни в малейшей степени не решают этих проблем.

Я использую CakePHP для различных приложений, и до сих пор он меня устраивал.1.2 - это огромное улучшение по сравнению с 1.1, и хотя исходный код библиотеки может измениться с RC3 на Final, я не думаю, что какой-либо написанный вами код устареет.Мое единственное замечание заключается в том, что Руководство не такое всеобъемлющее, каким оно должно быть (на мой взгляд), и в итоге я довольно часто сталкиваюсь с API.Компромисс здесь заключается в том, что теперь я очень хорошо понимаю код за кулисами.В любом случае, я настоятельно рекомендую это сделать.

С другой стороны, я никогда не играл с CI, поэтому не могу рекомендовать CakePHP закончился CI.Я бы покрутил каждого из них и посмотрел, какой из них тебя зацепит.Какой бы из них вы ни выбрали, изучите досконально все его условности и возможности.Когда я начинал с Cake, я невольно написал кучу кода, чтобы сделать что-то, что Cake сделал "автоматически", попросив меня установить одну переменную в контроллере.

CodeIgniter очень гибкий, в чем вы убедитесь, попробовав его сразу.Так что от того, насколько ваше приложение будет ремонтопригодным, зависит только ваше мнение.

Я также развернул несколько приложений, используя одну и ту же установку.Обычно я создаю 2 приложения для проектов CMS (одно для администратора, одно для интерфейса).

Чтобы ответить на оба ваших вопроса с точки зрения CodeIgniter (я не использую Cake):

1) CodeIgniter по умолчанию не сохраняет себя за пределами webroot, но он может сделать это с помощью некоторых очень простых изменений.Первая часть моя серия обучающих программ по CI объясняет, как это сделать, а также подробно описывает настройку нового экземпляра CI.После того, как закончил только часть конфигурации, который должен быть в Webroot-это небольшой файл Bootstrap index.php .

2) У меня есть приложение, которое я изначально разработал на CI 1.4.x, и я успешно перешел на 1.5.x, а затем на 1.6.x.С каждым новым выпуском разработчики CI выпускают подробные инструкции по обновлению, в которых излагается, что необходимо заменить, чтобы обновление было довольно простым.

Джим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top