Spec-Zone.ru › CakePHP 4.2

Класс Component

Базовый класс для отдельного компонента. Компоненты предоставляют многократно используемые фрагменты логики контроллера, которые могут быть объединены в контроллер. Компоненты также предоставляют обратные вызовы жизненного цикла запроса для вставки логики в определенные моменты.

Обработчик инициализации

Как и контроллер и таблица, этот класс имеет обработчик initialize(), который вы можете использовать для добавления пользовательской логики «конструктора». Важно помнить, что каждый запрос (и подзапрос) создаст только один экземпляр любого данного компонента.

Обратные вызовы жизненного цикла

Компоненты могут предоставлять несколько обратных вызовов, которые вызываются на различных этапах цикла запроса. Доступные обратные вызовы:

  • beforeFilter(EventInterface $event) Вызывается перед методом beforeFilter контроллера по умолчанию.
  • startup(EventInterface $event) Вызывается после метода beforeFilter контроллера и перед вызовом действия контроллера.
  • beforeRender(EventInterface $event) Вызывается перед методом Controller beforeRender и перед загрузкой класса представления.
  • shutdown(EventInterface $event) Вызывается после завершения действия и рендеринга представления, но перед Controller::afterFilter().
  • beforeRedirect(EventInterface $event $url, Response $response) Вызывается перед выполнением перенаправления. Позволяет изменить URL, к которому будет произведено перенаправление, возвращая экземпляр Response с новым URL, заданным с помощью Response::location(). Перенаправление можно предотвратить, остановив распространение события.

Хотя контроллер не является явным аргументом для методов обратных вызовов, он является объектом каждого события и может быть получен с помощью EventInterface::getSubject().

Пространство имён: Cake\Controller
См.: \Cake\Controller\Controller::$components
Ссылка: https://book.cakephp.org/4/en/controllers/components.html

Краткое описание свойств

  • $_componentMap protected
    array

    Таблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.

  • $_config protected
    array

    Конфигурация выполнения

  • $_configInitialized protected
    bool

    Установлено ли, что свойство config уже настроено со значениями по умолчанию

  • $_defaultConfig protected
    array

    Конфигурация по умолчанию

  • $_registry protected
    Cake\Controller\ComponentRegistry

    Класс реестра компонентов, используемый для ленивой загрузки компонентов.

  • $components protected
    array

    Другие компоненты, используемые этим компонентом.

Краткое описание методов

  • __construct() public

    Конструктор

  • __debugInfo() public

    Возвращает массив, который может быть использован для описания внутреннего состояния этого объекта.

  • __get() public

    Магический метод для ленивой загрузки $components.

  • _configDelete() protected

    Удаляет единственный ключ конфигурации.

  • _configRead() protected

    Читает ключ конфигурации.

  • _configWrite() protected

    Записывает ключ конфигурации.

  • configShallow() public

    Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

  • getConfig() public

    Возвращает конфигурацию.

  • getConfigOrFail() public

    Возвращает конфигурацию для этого конкретного ключа.

  • getController() public

    Получить контроллер, к которому привязан этот компонент.

  • implementedEvents() public

    Получить обратные вызовы контроллера, которыми интересуется этот компонент.

  • initialize() public

    Метод обратного вызова инициализации.

  • log() public

    Удобный метод для записи сообщения в журнал. Для получения дополнительной информации о записи в журналы см. Log::write().

  • setConfig() public

    Устанавливает конфигурацию.

END_OF_DOCUMENT_MARKER

Подробное описание методов

__construct() public

__construct(Cake\Controller\ComponentRegistry $registry, array $config = [])

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry

Регистр компонентов, используемый этим компонентом для ленивой загрузки.

array $config optional

Массив параметров конфигурации.

__debugInfo() public

__debugInfo(): array

Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.

Возвращает

array

__get() public

__get(string $name): Cake\Controller\Component|null

Магический метод для ленивой загрузки $components.

Параметры

string $name

Имя компонента для получения.

Возвращает

Cake\Controller\Component|null

_configDelete() protected

_configDelete(string $key): void

Удаляет единственный ключ конфигурации.

Параметры

string $key

Ключ для удаления.

Возвращает

void

Выбрасывает

Cake\Core\Exception\CakeException
при попытке перезаписи существующей конфигурации

_configRead() protected

_configRead(string|null $key): mixed

Считывает ключ конфигурации.

Параметры

string|null $key

Ключ для чтения.

Возвращает

mixed

_configWrite() protected

_configWrite(string|array $key, mixed $value, bool|string $merge = false): void

Записывает ключ конфигурации.

Параметры

string|array $key

Ключ для записи.

mixed $value

Значение для записи.

bool|string $merge optional

Истинное значение для рекурсивного слияния, 'shallow' для простого слияния, ложное для перезаписи, по умолчанию ложное.

Возвращает

void

Выбрасывает

Cake\Core\Exception\CakeException
при попытке перезаписи существующей конфигурации

configShallow() public

configShallow(string|array $key, mixed|null $value = null): $this

Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), который выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.

Установка конкретного значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key

Ключ для установки или полный массив конфигураций.

mixed|null $value optional

Значение для установки.

Возвращает

$this

getConfig() public

getConfig(string|null $key = null, mixed $default = null): mixed

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение определенного значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key optional

Ключ для получения или null для всей конфигурации.

mixed $default optional

Значение возврата, если ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для этого конкретного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Выбрасывает

InvalidArgumentException

getController() public

getController(): Cake\Controller\Controller

Получение контроллера, к которому привязан этот компонент.

Возвращает

Cake\Controller\Controller

implementedEvents() public

implementedEvents(): array

Получение обратных вызовов контроллера, которыми интересуется этот компонент.

Использует соглашения для сопоставления событий контроллера со стандартными именами методов обратного вызова компонента. При определении одного из методов обратного вызова предполагается, что компонент заинтересован в соответствующем событии.

Переопределите этот метод, если вам нужно добавить обработчики событий, не соответствующие соглашениям. Или если вы хотите, чтобы компоненты прослушивали нестандартные события.

Возвращает

array

initialize() public

initialize(array $config): void

Метод обратного вызова конструктора.

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

Параметры

array $config

Параметры конфигурации, предоставленные этому компоненту.

Возвращает

void

log() public

log(string $message, int|string $level = LogLevel::ERROR, string|array $context = []): bool

Удобный метод для записи сообщения в журнал. Для получения дополнительной информации о записи в журналы см. Log::write().

Параметры

string $message

Сообщение журнала.

int|string $level optional

Уровень ошибки.

string|array $context optional

Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

bool

setConfig() public

setConfig(string|array $key, mixed|null $value = null, bool $merge = true): $this

Устанавливает конфигурацию.

Использование

Установка определенного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key

Ключ для установки или полный массив конфигураций.

mixed|null $value optional

Значение для установки.

bool $merge optional

Выполнять ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.

Возвращает

$this

Выбрасывает

Cake\Core\Exception\CakeException
При попытке установить недопустимый ключ.

Подробное описание свойств

$_componentMap protected

Таблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.

Тип

array

$_config protected

Конфигурация выполнения

Тип

array

$_configInitialized protected

Указатель на то, была ли уже настроена конфигурация с параметрами по умолчанию

Тип

bool

$_defaultConfig protected

Конфигурация по умолчанию

Они объединяются с предоставленной пользователем конфигурацией при использовании компонента.

Тип

array

$_registry protected

Класс реестра компонентов, используемый для ленивой загрузки компонентов.

Тип

Cake\Controller\ComponentRegistry

$components protected

Другие компоненты, используемые этим компонентом.

Тип

array

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Controller.Component.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API