Foren / National / Russian / Российские интернет технологии. Прямой эфир

Sergey
#1 12. April 2010, 22:12
http://ritconf.ru/ 18:30—19:00
PHP фреймворк Yii для быстрой и гибкой разработки приложений
www.cotonti.mobi
Dr2005alex
#2 12. April 2010, 23:01
Спасибо! успел... :)
WebKaa.ru - Cotonti Relax
Sergey
#3 12. April 2010, 23:32
Конечно презентация мало удачная. Но все-таки она есть.
Я попробовал их примеры. Как сказал автор (я так понял) действительно, загрузка компонент быстрая. Что касаемо установки фреймворка она "позорная". я что-то уже и не припомню, чтобы мне приходилось редактировать командные файлы и набирать что-то в командной строке. Но, если кому-то интересно, то я вроде как написал, как это я делал в wamp на локалке.
www.cotonti.mobi
Trustmaster
#4 13. April 2010, 00:28
От Yii я не в восторге по нескольким причинам, и главная из них - старый добрый Prado, который суть старый добрый Delphi. Если кто помнит, Prado - это фреймворк-победитель одного из первых конкурсов для разработчиков на PHP и один из первых веб-фреймворков на PHP, созданный на манер графических компонентов Delphi VCL. Не то, чтобы у меня была какая-то нелюбовь к Delphi, но компоненты/виджеты/гаджеты не очень хороши, когда дело касается команд, в которых нетривиальная логика и непростые шаблоны визуального интерфейса разрабатываются параллельно или просто разными людьми.

Yii - это уже далеко не Prado (хотя автор тот же), но повозившись немного с ней, я понял, что связанность (coupling) компонентов в нем отнюдь не слабая, а чтобы заменить встроенный Views на что-то действительно другое (например XTemplate с его логикой, а не просто поменять имена тех же самых конструкций), придется переписывать ядро. Это номер раз.

Номер два - это производительность. Да-да, та самая, по которой Yii - самый быстрый. Действительно, грамотный class autoloading позволяет не загружать лишних компонентов, что радикально повышает рейтинг в тесте hello world. Но когда дело касается реальных приложений (например, простого блога), то обнаруживается, что алгоритмы в нем применяются отнюдь не самые шустрые, и над оптимизацией не так уж усердно трудились. Авторы говорят, мол, нынче всё делается на AJAX и запросы обрабатываются кодом, ничуть не сложнее, чем hello world, но на практике обработка запросов всё же значительно тяжелее.
May the Source be with you!
Dr2005alex
#5 13. April 2010, 00:37
Успеть то я успел! НО ничего я не услышал, что привлекто бы меня к Yii! Дальнейший разбор полетов не удивил.......
WebKaa.ru - Cotonti Relax
Sergey
#6 13. April 2010, 01:10
Я надеюсь, что если будет презентация Cotonti, на подобной конференции, то она не будет такой "Му-Му", мало, что пойму.
Что касаемо компонент Yii, то мне пришлось устанавливать отладчик типа NuSphere PhpED, чтобы понять что же там происходит на самом деле. Чтобы вывести hello world фреймворку приходится вначале прочитать и загрузить "Войну и Мир". Если раньше, я отлаживал компоненты исключительно "мозгами", то тут с системой автолоудеров, наследования классов порождает полное не восприятия системы, что отобьет охоту ей заниматься. Однако, концептуальные моменты этой системы можно и нужно поглотить. Например, если вам не нравиться какая-либо функция из ядра, то это уже во многих случаях не исправить, например метод обработки входной строки по фильтру

$pg = sed_import('pg','G','INT')

мне пришлось менять на

$pg = sed_import('pg','G','ALP')

но потребовалось возможность соединения нескольких страниц типа А,Б,С что для фильтра ALP невозможно, пришлось ставить

$pg = sed_import('pg','G','SLU')

а входная строка стала pg=А/Б/С это конечно красиво когда вот такой запрос:

pg=world/ru/news что соответствует в моей концепции найти страницу world на русском языке и выделить в ней абзац news. Если бы была бы возможность переопределить в sed_import фильтр (читаем метод) со внутренним геттером, то не пришлось бы трогать ядро. Я бы просто бы переопределил этот метод в самом первом хуке системы (где нибудь в common), так что полезное есть и есть над чем поразмыслить.
www.cotonti.mobi
Trustmaster
#7 13. April 2010, 02:47
Ага, явный довод в пользу ООП и иерархий в частности. Даст бог, допилю до юзабельного состояния библиотеку Cotonti Business Objects, там сей вопрос иерархиями классов-фильтров решается, а на каждое поле можно свой фильтр повесить. Но это для любителей ООП и Model-Driven Development, что касается старых добрых процедур, никто не запрещал в таком случае написать свою функцию импорта (или просто фильтрации поверх sed_import и SLU). А при желании можно в sed_import() поддержку пользовательских фильтров и callback-функций встроить.
May the Source be with you!