Skip to content

Action.php

Pechora.Dev edited this page Apr 17, 2026 · 3 revisions

📌 Назначение

Action — это абстрактный базовый класс, реализующий паттерн проектирования "Команда" (Command). Он служит основой для всех действий (actions) в системе, которые инкапсулируют бизнес-логику в отдельные классы.

Зачем это нужно?

  • Отделение логики от контроллеров — контроллеры становятся "тонкими", только маршрутизируют запросы
  • Переиспользование кода — одно и то же действие можно вызывать из разных мест
  • Тестируемость — действия легко тестировать изолированно
  • Гибкость — легко добавлять новую функциональность без изменения существующего кода

Где используется?

Все действия в контроллерах наследуются от этого класса. Например:

system/controllers/posts/actions/Create.php
system/controllers/posts/actions/Edit.php
system/controllers/posts/actions/Delete.php
system/controllers/categories/actions/Create.php
system/controllers/users/actions/AdminCreate.php
...

Свойства класса

Свойство Тип Доступ Описание
$db mixed protected Подключение к базе данных (обычно объект Database)
$params array protected Параметры, переданные в действие (например, ['id' => 5])

Методы

__construct($db, $params = [])

Конструктор — инициализирует действие.

Параметр Тип Обязательный Описание
$db mixed Подключение к базе данных
$params array Параметры действия (по умолчанию [])

Пример:

$action = new SomeAction($db, ['id' => 5]);

execute()

Абстрактный метод — должен быть реализован в каждом дочернем классе. Содержит основную бизнес-логику действия.

Возвращает Описание
mixed Результат выполнения действия (может быть void, string, array и т.д.)

Clone this wiki locally