Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 59 lines (44 sloc) 6.74 KB

Предисловие

Исходя из того, как в различных сообществах хвалят и восхищаются Phalcon, становится грустно из-за того, что подавляющее большинство этих людей практически не участвовало в написании приложений на нем. Все эти презентации русских и зарубежных спикеров кажутся полной чепухой на фоне их "псевдоопыта". Имея более одного года опыта программирования на данном фреймворке, я бы очень хотел заострить внимание на следующих вопросах:

Почему вам не стоит сейчас начинать проект?

  • Phalcon версии 1. *Написан на Си. Сейчас Вы, наверное, задумались о производительности, но только часть опытных пользователей задумалась о том, кто в случае багов будет заниматься их исправлением. Поверьте, что Вы наткнетесь на баг не один раз. Опять же, Вы подумали о том, что обратитесь за помощью к сообществу, и баг так или иначе могут утрясти. Только у меня висит 5 открытых багов:
    [BUG] \Phalcon\Mvc\Model\Query\Builder Мультимодульное приложение не сохраняет модель по связи А DI не Depency Injection а Registry [NFR] QueryBuilder count method QueryBuilder беда с мультимодульностью [BUG] \Phalcon\Mvc\View

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

  • Вы программируете на должности php backend, являясь программистом с опытом менее 2-х лет на full-time или 3-х лет на part-time.

  • Вы еще не попробовали и не разобрались с фреймворком. Да, я понимаю, что работая фрилансером или на русского работодателя, нет времени сначала изучить, а потом начать писать. Но все же Вам следует сначала пробежаться по фреймворку и понять, как Вы будете писать приложения.

Что брать не стоит

  • Не стоит использовать классы для работы с Базой Данных. Да, именно к этому выводу я пришел. На более или менее большом проекте у Вас сразу же возникнет проблема с отсутствием поддержки подзапросов в QueryBuilder, но это только начало проблемы. Потом я наткнулся на leftJoin и проблему с n+1 в обработке коррекции (допустим, мне нужно выбрать product с пользователем, вроде бы и запрос правильный, но при обработке связи выполняется дополнительный select запрос по primary id модели, идущей по связи).

    Пример того что я описал, только уже в багтрекере: Нет поддержки субзапросов в PHQL QueryBuilder - нет поддержки RAW SQL QueryBuilder - нет поддержки CRUD (insert) запросов

  • [Image](https://github.com/phalcon/phalco - класс для работы с картинками. Я не знаю, зачем этот класс нужен в hight load фреймворке, но он добавлен сравнительно недавно. Обработка изображений, как правило, выполняется далеко не во фронтенде, а в очередях, и там лучше всего использовать проверенную Библиотеку. Основываясь на своём опыте, я думаю, что лучшей будет Imagine. Библиотека поддерживает адаптеры на GD, GraphicsMagick, ImageMagick.

Что взять за основу?

В последние полгода появилось крайне много заготовок на Phalcon.

И что же сейчас делать?

Я думаю, лучший вариант по состоянию на 11 мая 2014 года - это подождать выхода версии 2.0.0. Она будет написана на модном сейчас языке zephir и будет легко поддерживаемой. После того, как ветка 2.0.0 станет @stable, начнется массовая поддержка и исполнения NFR запросов уже сообществом, а не только Phalcon Team.

Часто задаваемые вопросы

Вывод

Всем, кто не испугался начать проект уже после прочтения, я говорю: "Приветствую Вас в Phalcon Community и Happy Coding With Phalcon".