К основному контенту

Какой PHP фреймворк выбрать, опыт программистов

Кто писал на symfony и пригляделись к CodeIgniter v1 и Zend Framework, выбирают Zend Framework для сложных проектов и CodeIgniter для простых проектов с небольшой посещаемостью и структурой.

CodeIgniter 2 Кохана и Yii пока не актуальны и постоянно изменяются и улучшаются.

Лично я пишу на CodeIgniter, но должен признаться изрядно изменил его структуру, только по этому не меняю его на другой.

Если бы я заранее знал, что в Zend Framework архитектура более продуманна для запутанных задач и проектов, я бы выбрал Zend Framework. Точнее сказать блок схема Zend Framework раз в 5 больше чем в CI и выглядит более запутанно. Сгенерированную блок-схему я потерял, осталась только от CI.

Интересный график в сравнении Kohana,  Cake, Cacke+eAccelerator, CodeIgniter, CodeIgniter + eAccelerator. ссылка на пост автора графика даю в конце статьи.

framework-performance

Вот другой график результатов тестирования скорости фреймворков. Чем выше шкала, тем быстрее… (Django хорош на питоне и CodeIgniter с акселератором):
Zend не тестировался с акселератором даю ссылки на доклад и интересный пост на столько же интересном сообществе про Zend.

3ca990c536c0ea161122cf1e642259255fe8fdd0

Zend Framework

Итак давайте плотнее о фреймворке Zend:

Самая большая фишка это его масштабируемость, любой модуль можно не сложно перенести в другой web-проект.
Отсутствие строгой структуры позволяет наиболее выгодно построить ее.
Применяется для проектов с низкой нагрузкой или чуть больше средней.

table

минусы:
– скорость на шкале (надо попробовать с акселератором)
– документации мало надо качать Zend Frmework in Action

Применимость Zend Framework: Большие проекты, нагрузка от низкой до чуть выше среднего, потребность в частом рефакторинге или разработке по частям. Так же как кладезь хорошо написанных классов

вот проекты на Zend  http://www.mp3mixx.com/ и http://mp3vips.com/ (как фронтэнды) и к ним http://www.mp3partners.biz/ как бэкэнд

Вот еще топик, где обсуждается доклад о тестировании Zend Framework, с полезными ссылками.

CodeIgniter

Применимость CodeIgniter: проекты с высокой нагрузкой при средней функциональности. Я бы написал фид-агрегатор какой-нибудь или блог.

Symfony

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

Применяемость: средние и большие по функциональности сайты с маленькой нагрузкой, или средней нагрузкой.

Где-то вычитал:

– Документация Zend отвечает на вопросы ''почему'', но не говорит ''как'', то Symfony в основном отвечает на вопрос ''как'', но не говорит ''почему''.

Django

сам по себе написан на Python а не на PHP (считается модульным языком)

плюсы:

масшатабируемость – имеет произвольную структуру каталогов
произвольно подключаемые модули
хороший шаблонизатор если подключить Jinja2
огромная скорость работы
Python — самый легкий, самый быстрый, самый лучший, так говорят те кто на нем пишет.

минусы:
сложность установки на сервере
малофункциональный стандартный шаблонизатор
Python, так как все привыкли к PHP

Тестирование фреймворков

Для тестирования скорости и реакции на нагрузку будут полезны такие фитчи:

– Apache benchmark
– Siege
– Apache Jmeter

Пост автора бенчмарка трех фреймворков. Автор второго графика не известен.

Заключение

В результате сложилась такая картинка: Самым вкусным является Django но он на питоне написан, следом за ним идет CodeIgniter либо Kohana (кому как нравится), так как разработка CI 2 затянулась а функционала мало в первой версии, лидером становится Kohana на PHP как более функциональный чем CI. (Для меня первым остается CI так как функционал я постоянно дорабатываю)

Zend Framework – очень грамотный фреймворк, использовуется в большинстве случаев с выделенным сервером.

Zend функциональный, но медленный, CI очень быстрый, но заставит написать половину нужного кода самому, Symfony удобный, но иногда просто пугает своей инкапсулированностью от разработчика и тоже медленный

Комментарии

  1. «CodeIgniter 2 Кохана и Yii пока не актуальны и постоянно изменяются и улучшаются.»

    Ну, с CodeIgniter 2 ещё понятно — ни одного релиза пока не было, код очень сырой. А что не так с Kohana и Yii?

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Русская кодировка ASCII, ANSI и UTF-8, windows-1251 (CR, LF, CR LF)

Что нужно знать: Encoding – это кодировка для вывода данных (UTF-8, windows-1251) Line Endings – формат строк (CR, LF, CR LF) Byte Order Marker (BOM) – системная область в начале файла. LF – используется в UNIX вместе с кодировками UTF-8 или windows-1251 CR – используется в MAC системах. на сервере лучше использовать кодировку ANSI это и есть кириллица (Windows), символ занимает 1 байт (оптимизированный ASCII) UTF-8 может содержать заголовок BOM который содержит системную информацию, символ занимает 2 байта wysiwyg редакторы добавляют метатег в html страницы с кодировкой кирилицы. это не очень хорошо, если сервер настроен на UTF-8, в этой кодировке корректно работают некоторые библиотеки приложения и прочие

Как узнать время включения/выключения компьютера.

Способов масса, одни из них: в журнале событий windows  выбрать eventlog, теперь в таблице легко найти события с кодами: 6005 - событие остановки eventlog - компьютер выключился 6006 - событие запуска eventlog - компьютер включился обычно эта служба запускается и остонавли во время включения/выключения компьютера, и пишет в журнале событий системы код события и время.

Извлечение, редактирование и публикация файлов в SharePoint

Теги: Sharepoint в sharepoint designer на ленте за извлечение / редактирование или отмену извлечений отвечают кнопки  в браузере это выглядит по другому   файл извлечен и пока редактируется пользователем   страница с индивидуальным дизайном возврат страницы с индивидуальным дизайном к определению узла (к первоначальному виду не изменяя веб-части) Возврат извлеченной страницы с отменой всех внесенных изменений Изначально извлечение было создано для исключения конфликтов при редактировании файлов. Например если один пользователь открыл документ и редактирует, то второй не сможет открыть пока первый не вернет документ на место. Простыми словами извлечение значит, что пользователь забирает документ для редактирования. И возвращает после окончания редактирования. Само редактирование может выполняться и без подключения к сети, документ хранится в черновиках моих документов. В официальной документации сказано: Извлечение файлов позволяет избежать ситуации, когда несколь