Проблема выбора

by Larin

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

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

В конце концов, многие задумываются над соотношением полученного результата (деньги, слава, мировое господство) и потраченного времени на исправления своей системы. Одному довольно тяжело и развивать систему, и делать на ней сайты – на все просто не хватает времени.

Из создавшейся ситуации много выходов, например:

  1. Завязать с программированием и податься в нефтяной бизнес;
  2. Полностью перейти на сторонние CMS, и стать обычным интегратором готовых систем, подобных Битриксу;
  3. Остаться при свое CMS, но за основу взять какой-нибудь известный Framework.

Пожалуй, третий вариант нам подходит. :) И вот тут-то мы и сталкиваемся с проблемой выбора.

Сейчас существует очень большое количество бесплатных FW, как известных, так и не очень. Перечислять все не вижу смысла, кому интересно – Google в помощь! Я же перечислю наиболее понравившиеся мне.

Symfony Framework (http://www.symfony-project.com)

Сколько читал на форумах, все его хвалят. Но почитав документацию, не нашел в нем того, чего нет, например, в Zend FW. Безусловно, это очень мощный и гибкий инструмент разработки, но есть одно «но». Он довольно сложен для освоения, даже для не новичков. Например, их первый урок, мне показался более сложным для понимания, чем у других FW, представленных в этой статье.

CodeIgniter (http://codeigniter.com)

Очень простой, но при этом довольно мощный (для своей простоты) framework. Разобраться с CodeIgniter не составит труда даже новичку.

У проекта прекрасная документация, понять которую сможет даже человек, плохо владеющий английским языком. Судя по отзывам, у новичка освоение данного FW займет один-два дня.

К слову, у меня ушло примерно 2 часа, что бы написать на этом FW простенькую CMS (создание, редактирование, удаление текстовых страничек). Работа с CodeIgniter оставила только хорошие воспоминания.

Огорчает лишь одно – CodeIgniter – написан на PHP4. Сейчас это смесь PHP4 & PHP5. Соответственно стройности системе это не добавляет. В остальном все замечательно. :)

Вывод: CodeIgniter отлично подходит для небольших проектов и для программистов, которых не смущает мешанина версий.

Zend Framework (http://framework.zend.com)

Быстро развивающийся FW. Команда разработчиков с завидной регулярностью выпускает новые версии, добавляя новый функционал и «латая» найденные дыры.

У FW замечательная документация, и одно из ее отличий от коллег по цеху – большая часть этой документации переведена на русский язык.

Судя по статьям и обзорам, именно этот FW завоевал доверие российских php-программистов (возможно мое наблюдение очень субъективно).

Лично мне Zend Framework понравился своей концепцией и гибкостью. На его основе можно создавать мощные, легко масштабируемые приложения. Я даже подумываю о разработке одного нового проекта именно на Zend FW.

Однако есть и здесь свои минусы. Framework получился довольно требовательным к ресурсам, т.е. попросту сказать тормознутым. Хотя, если вы собираетесь выделить под проект отдельный сервер, то до поры до времени вас это волновать не должно, тем более кэширование никто не отменял.

Solar Framework (http://solarphp.com)

Еще один из понравившихся мне framework-ов. По концепции очень похож на Zend FW. Однако по тестам он проявил себя как самый быстрый.

Сопровождается хорошим описанием. Хотя документация представлена только на английском языке, но думаю, разобраться в ней не проблема. Написана она простым и доступным языком.

По функциональности Solar конечно уступает Zend FW, но если для вас главное это скорость, то стоит обратить внимание на эту разработку.

CakePHP (http://cakephp.org)

И конечно нельзя обойти вниманием данный фреймворк. Мне лично, показалось, что это нечто среднее между Zend Framework & Solar Framework.

Cake имеет хорошую документацию и отличные уроки работы с системой.

Более подробно с этим фреймворком я еще не разбирался. Но на «беглый взгляд» сложным к освоению он не кажется.

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

Лично я пока склоняюсь к Zend Framework. На мой взгляд, в нем наилучшим образом сочетается большая функциональность и простота использования. Что же касается скорости работы, то это критично далеко не для всех проектов. Вряд ли сайт компании занимающейся строительством коттеджей будет иметь посещаемость 100 000 уников в сутки. :)