Просмотров: 67927
Дата последнего изменения: 16.06.2023
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
3
4
5
Недоступно в лицензиях:
Ограничений нет
Термины
- Действие, аякс-действие - это метод-ответчик, который реализует конечную логику, выполняет работу и возвращает данные.
- Контроллер - это совокупность аякс-действий.
- Конфигурация действий - это метод configureActions() внутри контроллера, где определяются правила доступа к действиям.
- Пре-, пост-фильтры - это элементы конфигурации, которые по сути являются обработчиками события старта-конца действия. Префильтр может блокировать старт, постфильтр может повлиять на результат.
Соглашения
Примечание: С версии 20.600.87 Главного модуля (main) добавлена поддержка PSR-4 в ajax-контроллерах.
- При вызове все имена параметров регистроЗАвисимые
- При вызове все имена контроллеров регистроЗАвисимые
- При вызове все имена действий регистроНЕзависимые
- Полное имя действия из модуля генерируется по шаблону
vendor:module.partOfNamespace0.partOfNamespace1.Controller.action
.
\Bitrix\Disk\Controller\Folder::getAction()
bitrix:disk.Controller.Folder.get
\Bitrix\Disk\Controller\Intergation\Dropbox::connectAction()
bitrix:disk.Controller.Intergation.Dropbox.connect
\Qsoft\Somedisk\Controller\SuperFolder::getAction()
qsoft:somedisk.Controller.SuperFolder.get
- Если не указывать vendor:, то это означает, что это bitrix:
\Bitrix\Disk\Controller\Folder::getAction()
disk.Controller.Folder.get
- Если указан
defaultNamespace
в настройках модуля, то его можно опускать и не указывать в действии.
defaultNamespace = \Bitrix\Disk\Controller
\Bitrix\Disk\Controller\Folder::getAction()
disk.Folder.get
- Если указан альяс в настройках модуля, то можно использовать его вместо сокращаемого namespace.
\Bitrix\Disk\CloudIntegration\Controller => cloud
\Bitrix\Disk\CloudIntegration\Controller\File::getAction()
disk.cloud.File.get
- При вызове действия из компонента необходимо указывать полное имя компонента и имя действия (без суффикса
Action
).
bitrix:list.example
showFormAction
BX.ajax.runComponentAction('bitrix:list.example', 'showForm', {
...
}).then(function (response) {});
- Время, дата, ссылки должны возвращаться не в строковом формате, а объектами.
\Bitrix\Main\Type\DateTime
\Bitrix\Main\Type\Date
\Bitrix\Main\Web\Uri