Является ли CodeIgniter разумным выбором для больших приложений?

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

Вопрос

Я продолжаю читать, насколько хорош codeigniter с точки зрения разработки.И я уверен, что использование фреймворка ускорит процесс разработки.Но вопрос, который я задаю себе, заключается в том, будет ли разница в индивидуально разработанном фреймворке, который удовлетворяет вашим потребностям?

Является ли CI, несмотря на рекламируемую малую площадь, "увязающим" в системе, потому что это в основном фреймворк на фреймворке (позже PHP будет называться фреймворком C)?Есть ли хорошие способы распределить нагрузку?Существуют ли какие-либо крупные приложения в дикой природе, которые были созданы с помощью CI?

Спасибо Каспер.

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

Решение

Я запускаю сайт codeigniter с примерно 11 тысячами файлов.

Я сильно изменил базовую структуру codeigniter для своих нужд.Например, у меня есть 3 приложения с 3 фронтальными контроллерами, использующими одни и те же системные файлы.Я использую smarty в качестве движка для создания шаблонов.У меня есть богатые веб-приложения на PHP, работающие на jquery и prototype / Scriptaculous.Я использую проверку формы, аутентификацию, активную запись, отправку по электронной почте и т.д.и т.д.

Мой опыт до сих пор был очень положительным.

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

Вы должны подумать об организации вашего сайта в большие "метагруппы", поскольку структура "контроллера" в Codeigniter ожидает такого поведения.("блоги", "товары", "форумы" и т.д.)

К CI очень легко добавлять плагины.

Фреймворк упрощает кучу дерьма, которое в противном случае вам пришлось бы передавать код вручную.Это быстро, просто и настраивается.

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

Мой любимый аспект CI - простота активной записи в базу данных MySQL.Настроить подключение к базе данных и запустить активные запросы к записи очень просто.

Я бы сказал, что начать с этого довольно легко.Просто убедитесь, что вы ходите по магазинам и выясняете, как подключить smarty к вашему приложению.Вы можете использовать "представление" Codeigniter по умолчанию, но в ту минуту, когда вам понадобится логика if / else в ваших шаблонах, вы облажаетесь.

Я настроил область "шаблоны" и "контент" в каждом приложении, которые я могу заполнить шаблонами smarty и статическим контентом соответственно.Остальное я могу извлечь из подключения к базе данных.

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

Это действительно вопрос, на который только вы можете ответить.Когда вы говорите о "большой системе", вы можете иметь в виду что-то широко используемое (просмотры страниц и т.д.) Или что-то, что охватывает огромный набор бизнес-правил, но используется только несколькими людьми.Должно ли приложение работать быстро, или вы можете распределить нагрузку между несколькими серверами?

Ваш комментарий "PHP - это фреймворк на C" довольно неуместен, IMO.Нет, PHP работает не так быстро, как C.Но он НАМНОГО лучше справляется с веб-запросами.PHP используется на некоторых крупнейших сайтах в мире - Facebook изначально был полностью написан на PHP.Yahoo довольно часто использует PHP.Таким образом, PHP достаточно быстр практически для всех, особенно учитывая, что база данных почти всегда будет вашим узким местом.Если ваши PHP-приложения замедляются, вы можете использовать memcache / балансировщики нагрузки / разместить больше серверов приложений в своей сети.Довольно легко масштабировать PHP-конец материала.

Что я могу вам сказать, так это краткое сравнение с другими фреймворками.Я использовал CI в ограниченных развертываниях, в основном помогая другим людям, но то, что я увидел, мне понравилось.Это дает вам преимущество в скорости выполнения по сравнению с чем-то вроде CakePHP, но это увеличит ваше время разработки (поскольку самой сильной стороной Cake является его способность быстро разрабатывать и развертывать).По скорости это вполне сопоставимо с Zend или Symfony, которые все еще примерно в 5-7 раз медленнее, чем просто написание необработанного PHP самостоятельно.

Подводя итог различным фреймворкам (NB:мое мнение ниже):

  • CakePHP отлично подходит для быстрой разработки.Его производительность наихудшая среди основных фреймворков, хотя предполагается, что релиз 1.3 (скоро выйдет!) обеспечит вам бесплатное (без изменений в API, они просто удаляют поддержку PHP4) повышение скорости на 25%.Он ориентирован на ActiveRecord и очень быстр для запуска полнофункционального сайта (серьезно, очень быстрые этапы разработки / прототипирования).
  • Zend является наиболее широко используемым.Он обладает наибольшей гибкостью при добавлении модулей.Он очень быстрый, хотя и не особенно легкий.Для корпоративного проекта я бы выбрал этот или symfony.Мне кажется, что я использую кучу разных библиотек.И их соглашения об именовании немного обременительны...
  • Symfony - смотрите комментарии Zend.Хотя предполагается, что symfony должен быть еще более предприимчивым.
  • CodeIgnitor - новенький в этом квартале.Он сосредоточен на том, чтобы не путаться у вас под ногами, оставаясь при этом "фреймворком", т.е.инструмент, который поможет вам быстрее выполнять свою работу.Он быстр в запуске, но немного медленнее развивается.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top