128  /  389
Справочник

Контроллеры

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



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

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