
Всем привет. Собственно хотел сгруппировать полученную за последние месяцы информацию и предоставить список JavaScript GUI фреймворков, которые я рекомендую к рассмотрению.
Каждый из них обладает своими плюсами и минусами, я не буду ничего описывать, кому интересно - смотрим по ссылкам. В списке приведены именно фреймворки с возможностью создания GUI, а не просто AJAX-фреймворки.
- Jx
- MochaUI
- JsRIA
- Mootools Ext Adapter
- Ext JS
- ComponentArt
- Qooxdoo
- Google Web Toolkit
- ActiveWidgets
- JQuery
- UI4Web
- Dojo
- Backbase
- Prototype
- Tibco General Interface
- Bindows
- Yahoo! User Interface Library
- JackBe Presto
Это еще не все, в будущем список будет пополняться.
... коде – берем Zend
с его коллекцией ...
Последний раз вплотную на php я что-то делал два года назад. За это время технологии прилично продвинулись вперед. Тогда вообщем-то было все тоже самое, но валилось из-за сырости, требовало постоянное ковырения в php.ini, конфиге апача и phpMyAdmin. А самое плохое – были завязаны сами на себе.
Сейчас же можно смотреть вебдванольненькие документации, с хорошим поиском и хоть каким-то количеством готовых решений.
А еще, не нужно лезть в phpMyAdmin, с помощью Doctrine можно запросто написать всю структуру в YAML файлах. А она сама запишет в БД со всеми зависимостями и индексами, да еще модели сгенерирует в специальную папочку.
CodeIgniter задаст легкую структуру приложения, не нужно выдумывать расположение файлов, шаблонные движки, писать тыщуодну MVC. А модели будут из Доктрины, он не против.
А если нужна авторизация, OpenId и еще что-нибуть такое стандартное, но хочется отлаженное и без копания в чужом коде – берем Zend Framework с его коллекцией классов. Он вообще изначально проектировался так, чтобы все компоненты не зависели друг от друга, а интегрировались.
На самом деле, самым без проблемным оказался CodeIgniter. Убрал везде index.html, перенес все в директорию cgi-bin и наслаждаюсь.
Потом добавил Doctrine. И час искал тот метод, который генерит таблички без использования консоли.
Doctrine::createTablesFromModels(APPPATH . 'models');
И тут как раз оказалось, что ей нужен PDO. Он был установлен у хостера. Установлен сам по себе, без драйверов :) Пришлось лезть в консоль. Собрал. Т.е. собрал все модули которые нужны. Переписал php.ini. Заработало. Очень понравилось. Единственное, в типах столбцов всегда нужно указывать что они NOT NULL.
---
Articles:
columns:
id:
primary: true
autoincrement: true
type: integer(4)
notnull: true
url: { type: string(255), notnull: true }
text: { type: string, notnull: true }
А вот Zend'а, моя сборочка встретила холодно.
Zend_Loader::registerAutoload('Zend_Loader');
Тут php бросался варнингами. Оказалось где-то в самом конце CodeIgniter проверял if (class_exists('CI_DB') AND isset($CI->db)), что вызывало у зенда стойкое желание подгрузить класс CI_DB. В сообществе об этом знают, но не используют. Убрал автолоад и стал подгружать вручную, на четыре строчки оказалось больше.
И нужно мне подсоединить OpenId. Там проблемы возникли у всех. CodeIgniter ругался на роутинг (у него инеграция с PHP4, но специфичная форма роутинга, которую удалось запустить только созданием хука), Zend отказывается принимать жж. А Доктрину не понятно как сюда вообще вписывать.
Вывод: эти технологии рассчитаны на будущее. Когда у каждого будет свой выделенный сервер с PHP7. И YAML будут проходить в школе.
Вечером во время общения по аське, JSman обнаружил, что sizzle кэширует результаты запросов. А сам движок не шибко чем отличается от текущей реализации в jQuery.
Так как тестирование css селекторов происходит в 5 итераций с последующим вычислением среднего, то у этого движка была значительная фора относительно не таких хитрых движков. Результаты и правда, не особо отличаются:
|||||||&chtt=Сравнение+скорости+JavaScript+библиотек|Firefox+3+Mac&chts=000000,11&chg=2.5641,10,1,3&chd=s:DDDPMV0DfJDDDGAAADDSAfDDDDDDDDJMolllliii,ADDJPGlGJVoDMDADJGDDA9DDDDDDDDDMrllllfSP&chco=0045D9,10B200,FF8300,E60000,00B9CC,FFA13D,a5b6ca,7f7f7f,f28fbf,6cd0f6,4caae4,81cb84,feedb9&chdl=Sizzle 08.10.08|jQuery 1.2.6)
Еще добавил после выборки цикл, чтобы уравновесить по скорости массивы и коллекции.
... ее в $('CSS').
.
Наткнулся на Gimme в Ajaxian, и занес ее в $('CSS').framework.
О ней можно сказать, что она легкая (20KB), очень простая в управлении и есть управление анимацией. Минусую за тесты в FF3, где она заднице.
|||||||&chtt=Сравнение+скорости+JavaScript+библиотек|Firefox+3+Mac&chts=000000,11&chg=2.5641,10,1,3&chd=s:FCDDDDGDCLFCDDAAACCDCCCCCCDCCCCDJJIIFGGG,CCCQJOsDeDfCcCAAADDOCGCDCCCCDCCT6y119OON,ACADCDIAFCAAAAAAAAADADCAAAAAAACCIFFFFFGF,CCCFIDTDGJUCFDACFDCCCcCCCCCCCCCGWTTTTQJI,IFIIGGUGGWFFGJCFFGFFFFFFFFFFFFFGNNNNQJJJ&chco=0045D9,10B200,FF8300,E60000,00B9CC,FFA13D,a5b6ca,7f7f7f,f28fbf,6cd0f6,4caae4,81cb84,feedb9&chdl=DOMAssistant 2.7.1.1|Gimme 2.0|Sizzle 08.24.08|jQuery 1.2.6|Prototype 1.6.0.2)
Кстати, кому не лень, протестируйте в IE, может там все не так плохо.