[`\Shef\Options\Components`] Работа с компонентами

Соглашение о наименовании

  1. компоненты складываем в папку /local/vendor.modulename/custom.name
    1. namespace Local\Component\Vendor\ModuleName
    2. для компонента class CustomNameComponent
    3. для ajax class CustomNameAjaxController
  2. используем для .js
    1. namespace BX.namespace('BX.VendorModuleName');
    2. class BX.VendorModuleName.CustomNameController
    3. объект BX.VendorModuleName.CustomName

Классы

КлассОписание
Components\BuilderКласс для работы с компонентами
Умеет подключать (просто, через слайдер, автоматически)
Умеет создавать объект класса
Components\AComponentАбстракция для компонента
Components\AControllerableАбстракция для компонента с поддержкой ajax
Components\AjaxProcessorАбстракция для обработки ajax запросов вне компонента
Components\ActionsНабор проверок для ajax запросов
Components\Actions\IActionsFilterListИнтерфейс для получения действий
Components\Actions\FreeБез проверки прав доступа
Components\Actions\NormalОбычная проверка прав доступа
Дополнительно
Components\IAutoloaderИнтерфейс для подключения в компоненте механизма автозагрузки
Components\IClassИнтерфейс для указания что компонент содержит файл class.php
Components\IAjaxИнтерфейс для указания что компонент содержит файл ajax.php
Components\TraitНабор трейтов
Components\Trait\ComponentNameTraitTrait для обработки названий компонента
Components\Trait\AutoloaderTraitTrait для подключения в компоненте механизма автозагрузки

Использование механизма автозагрузчика в компоненте

Объявляем интерфейс Components\IAutoloader и реализуем его через трейты Components\Trait\ComponentNameTrait и Components\Trait\AutoloaderTrait .

Отдельно предусматриваем механизм подключения класса из файла ajax.php

← Утилиты | ↑ Содержание | Паттерны →

Источник: options/docs/6_components.md — правки туда, сайт пересобирается сам.
CtrlI