129  /  382
Справочник

Контроллеры

Просмотров: 70344
Дата последнего изменения: 16.06.2023
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
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



68
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии