21.04.2015, 12:40
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Сообщение от xintrea
|
Поэтому вопрос 1 - имеет ли смысл использовать ZendFramework или там Yii или там CodeIgniter? Или это будет сплошной оверхед? Достаточно ли просто пользоваться на сервере возможностями PHP плюс какой-нибудь ORM?
Вопрос 2 - где и как хранить код объектов ExtJS? Хранить как статику в в видет простых файлов в директории? Хранить в директории видов PHP-фреймверка и генерировать JS-код PHP-фреймверком? Какие-то смешанные техники?
Вопрос 3 - имеет ли смысл использовать совместно с ExtJS библиотеку JQuery?
В общем, расскажите, как у вас устроены приложения с ExtJS.
|
1) Ext JS работает с сервером при помощи RESTfull. Этот протокол является основным для Ext, но не обязательным. Этот протокол хорошо поддерживает Zend Framework 2. Там все уже есть. Я лично сам так и соединяю клиент и сервер. Работает на ура.
2) Клиентскую часть на Ext можно хранить в рамках приложения на Zend Framework 2, а можно хранить вообще в другом месте. Как удобнее разработчику. Я генерирую при помощи Zend Framework 2 только первый index.html чтобы туда заложить настройки Ext-приложения.
3) Не имеет. Но мне больше нравится JQuery, чем Ext, в плане работы с селекторами. Поэтому я их иногда смешиваю.
|
|
21.05.2015, 22:13
|
|
Профессор
|
|
Регистрация: 21.05.2015
Сообщений: 321
|
|
Сообщение от khusamov
|
1) Ext JS работает с сервером при помощи RESTfull. Этот протокол является основным для Ext, но не обязательным.
|
Поправка: Ext JS работает с сервером при помощи Proxy, которых есть много разных на любой вкус. Помимо REST в коробке есть ещё JsonP и Ext.Direct. Я всегда пропагандирую последний, т.к. на мой взгляд RPC интерфейсы имеют массу преимуществ перед REST во многих приложениях, и изрядно недооценены.
Можно к этому добавить, что если штатные варианты транспорта чем-то не устраивают, то вам никто не мешает написать свой вариант прокси. Как примеры можно привести SOAP и AMF, которые хоть и не идут в штатной коробке Ext JS, но доступны как пакеты в Sencha Complete.
|
|
21.05.2015, 22:42
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Да, действительно. Правда работая с Ext у меня сложилось ощущение что именно RESTfull для них самый главный.
|
|
21.05.2015, 23:43
|
|
Профессор
|
|
Регистрация: 21.05.2015
Сообщений: 321
|
|
RESTful интерфейсы очень просто сляпать по-быстрому для примеров, именно поэтому они и доминируют и в документации, и собственно в примерах кода.
Для больших живых приложений ситуация не совсем совпадает. Да, правильно спроектированный RESTful интерфейс может решить все или почти все задачи, но кто и где видел правильно спроектированный RESTful интерфейс? Я вот лично не видел, везде хак на косяке и костылём подпирает.
RPC в этом смысле гораздо лучше хотя бы в силу своей унифицированности. Когда нет вопроса "как лучше передать параметры в функцию на сервере", то и время на поиски решения не тратится. Просто бери и используй.
Хотя я конечно понимаю, что "просто бери и используй" не очень интересно, RESTful велосипеды изобретать гораздо увлекательней. ;)
|
|
21.05.2015, 23:46
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Спасибо за ответ. В следующем проекте обязательно попробую RPC вместо REST. А то я RPC так, теоретически знаю что он есть, как соап и прочее.
|
|
21.05.2015, 23:48
|
|
Профессор
|
|
Регистрация: 21.05.2015
Сообщений: 321
|
|
SOAP городить ради своего проекта смысла нет, это очень специфическая штука. В Ext JS есть коннектор для SAP, который по SOAP разговаривает, но протокол довольно сложный и если у вас на серверной стороне не SAP, то и не нужный вовсе.
Смотрите в сторону Ext.Direct, это более простой вариант RPC.
|
|
22.05.2015, 13:22
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
Ext.direct интересен пакетной отправкой запросов на сервер. Использовал с четвёртой версией ExtJs. Не обязательно запрашивать сложные вложенные структуры, чтобы сократить количество запросов и ускорить работу приложения. Возможен простой маппинг: таблица в базе - модель в ExtJs. Там есть хитрость - запросы отправляемые из форм имеют особый статус. Нужно правильно догадаться, как загружать файлы. Вообще, удобно запускать серверные функции прямо из клиентского кода.
Сейчас использую REST-подобное API, потому что мой PHP код утрачен и не было времени писать этот слой под пятую версию ExtJs. Но главная причина в том, что с сервером работет не только ExtJs, а ещё, например, Jira. Не писать же на Джаве механизм подобный директу. Да и тема о лицензиях на форуме и потенциальное сокращение сообщества заставляет думать об ослаблении привязки к особенностям Экста.
В ресте у меня CRUD для каждой таблицы базы данных. Причём read существует в трёх вариантах: 1) одна строка для форм; 2) несколько строк с фильтрацией, группировкой и разбиением на страницы для гридов; 3) одна строка таблицы, но в виде вложенной структуры, которая содержит данные из связанных таблиц, для кастомных компонентов.
Последний раз редактировалось novikov, 22.05.2015 в 13:35.
|
|
22.05.2015, 15:29
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
а что там с лицензиями не так? хотят бесплатное отменить?
|
|
22.05.2015, 15:46
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
нет, не хотят. Нельзя теперь купить лицензию на одного разработчика, а только на пятерых, и цена у неё конская. И ещё не все релизы ExtJs имеют бесплатную версию.
|
|
22.05.2015, 15:49
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
А для чего конкретно в России покупают Ext JS? Разве нельзя обойтись бесплатной версией?
|
|
|
|