Подтвердить что ты не робот

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

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

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

Спасибо Casper.

4b9b3361

Ответ 1

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

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

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

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

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

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

Структура упрощает много дерьма, в противном случае вам нужно было бы передать код. Он быстрый, простой и настраиваемый.

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

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

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

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

Ответ 2

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

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

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

Чтобы суммировать различные рамки (NB: мое мнение ниже):

  • CakePHP отлично подходит для быстрого развития. Его производительность - худшая из основных платформ, хотя релиз 1.3 (скоро!) Должен получить вас бесплатно (никаких изменений в API, они просто удаляют поддержку PHP4) 25% ускорения скорости. Он сосредоточился на ActiveRecord и очень быстро, чтобы получить полноценный сайт и работать (серьезно, серьезно Rapid Development/Prototyping chops).
  • Зенд наиболее широко используется. Он имеет большую гибкость с добавлением модулей. Он очень быстрый, хотя и не очень легкий. Для корпоративного проекта я бы пошел с этим или с symfony. Мне кажется, что мне нужны разные библиотеки. И их соглашения об именах немного обременительны...
  • Symfony - см. комментарии Zend. Хотя Symfony должен быть еще более предприимчивым.
  • CodeIgnitor - новый горячий парень на блоке. Его внимание было сосредоточено на том, чтобы оставаться на своем пути, оставаясь "каркасом", т.е. Инструментом, который поможет вам быстрее выполнять свою работу. Это быстро работает, но немного медленнее развиваться.