Jan 22

То, что мне очень не нравилось в Symfony 1.0, а именно - работа с формами, в следующей версии, которая сейчас находится в активной разработке, должно кардинально поменяться в лучшую сторону. Ну а пока что расскажу о работе с формами в текущей стабильной версии этого замечательного фреймворка.

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

Пример работы:

Предположим, что существует следующая модель пользователя (здесь и далее все конфигурационные файлы будут пприводится в формате YAML) :

user:
 id:
 login:
   type: varchar(64)
   required: true
   index: unique
 password:
   type: varchar(40)
   required: true
 first_name:
   type: varchar(64)
   required: true
 last_name:
   type: varchar(64)
   required: true
 email:
   type: varchar(128)
   required: true
   index: unique

...

Continue reading »

written by fxposter \\ tags: , , ,

Jan 20

Не так давно я задавал вопрос относительно выбора PHP-фреймворка из множества ныне существующих… Отзывы послушал… Кое-что почитал по самим фреймворкам… В итоге для себя я выбрал Symfony (пусть тормозная, но вы часто делаете сайты с количеством посетителей от 10 000 в день?). Почему - вопрос сложный и, наверное, я сам до конца не знаю ответа на него… Хотя одну из основных причин могу сказать - это модель, а именно Propel/Doctrine. Это единственные на данный момент ORM’ы с которыми мне реально нравится работать, разработчики которых понимают отличия функциональности уровня таблицы и уровня записи и т.д. (может есть еще хорошие ORM’ы, но я с ними просто незнаком :)) Да, кстати, я сейчас использую Symfony по работе, за что огромное спасибо Любомиру, моему “шефу”. :)

Но сейчас я хотел бы поговорить не об этом… Есть одна “маленькая”  идея - затеять сравнение фреймворков друг с другом. По каким критериям сравнивать - вопрос довольно сложный, я составил следующий список:

  • Controller
  • Model
  • View
  • наличие/удобство хелперов
  • взаимодействие с JS/AJAX
  • работа с формами (сейчас с этим в Symfony, кстати, достаточно большие проблемы)

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

Следующий вопрос - список фреймворков. Опять же, мой список пока что состоит из таких претендентов:

Писать хочу в виде “один пост рассматривает все фреймворки по одному критерию”. Т.е., например, через две недели будет опубликовано сравнение моделей в выбранных фреймворках - возможности, удобства, недостатки, пожелания относительно улучшения и т.д.

Теперь я подошел к самому главному - хотелось бы попробовать устроить действительно коллективную работу… Никто не хочет помочь мне в этом деле? Я вот лично могу на себя взять Symfony и (хотя и не хочется) Kohana. Никто не хочет написать про CakePHP или про <вставьте сюда название вашего любимого фреймворка>? На каждый пост будет отводится, скажем, неделя-две. После этого кто-то (думаю я, если кто-то захочет помочь - пишите) скомпонует все посты в одно сравнение, сделает выводы…

Первым критерием для сравнения предлагаю сделать Controller и всё что с ним связано (routes, dispatchers  и т.д.). Если меня кто-то поддержит - жду ваши тексты до 1-го февраля. И 3-го будет первый пост по сравнению фреймворков.

written by fxposter \\ tags: ,

Jan 30

После полного прочтения блога Ивана Сагалаева, у меня возникла мысль, что надо бы поискать фреймворки для PHP. Все же интересно, насколько они ускоряют процесс разработки приложений/сайтов и увеличивают удобство работы вообще. Сказано - сделано. При разборе запросов гугля я наткнулся на 2 статейки (одна и вторая), в которых было представлено 2 субъективных взгляда на существующие PHP фреймворки.

В обоих статьях больше всего (как мне показалось), хвалили Symfony. Также мне приглянулись Zend Framework (от разработчиков PHP) и Prado (.NET-подобный фреймворк, ориентированный на обработку event’ов).

Symphony

Наверное, один из лучших фреймворков для PHP (блин, надоело, далее будет просто “пхп”), построенный на принципах ROR (о нем я уже чуть-чуть писал). Он использует сторонние разработки (Propel для ORM, Creole для работы с БД и т.д.), “объединяя” их в одно целое. Здесь действительно есть очень многое, НО, по-моему, фреймворк ОЧЕНЬ сложен для новичков. Прочитав начало их документации (end-user которая), стало понятно, что МНЕ такое использовать либо еще рановато, либо вообще не стоит. Скорее всего второе :)

Prado

Общение с фреймворком закончилось после прочтения документации. Задумка хорошая (как я узнал позже, она сюда перекочевала из asp.net), но меня она не устроила в принципе. Мне ото фреймворка нужно было немного другое (да, каюсь, с MVC-паттерном я знаком лишь очень отдаленно, никогда его не использовал и узнал о нем, собственно, из блога SM.org).

Zend Framework

Фреймворк от разработчиков пхп. Как мне кажется, в него комманда зенда решила вложить то, чего не хватало самому языку пхп, правда в некоторых моментах они перестарались (сделайте Zend::dump() от строки с русскими буквами в юникоде), но все же пользоваться фреймворком, как по мне, вполне удобно. Он содержит много разных вещей, с помощью которых можно делать многие вещи гораздо удобнее. Им я сейчас и пользуюсь.

Кстати, заметил за собой такую “штуку” - вот сделал что-то с этим фреймворком, теперь мне как-то без него неуютно… Что посоветуете/скажете по этому поводу?

Сейчас зенд находится в стадии beta. Многие вещи еще будут переделываться (особенно это касается тех вещей, которые сейчас находятся в incubator’е), но им УЖЕ можно пользоваться и он РЕАЛЬНО помогает.
Чего не то, чтобы не хватает, а что хотелось бы увидеть в этом фреймворке - так это ORM, потому как сейчас ее нет даже в инкубаторе, а жаль.

Я думаю, я еще вернусь к этой теме.

written by fxposter \\ tags: ,