-
-
Notifications
You must be signed in to change notification settings - Fork 11
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]) |
Конструктор — инициализирует действие.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$db |
mixed | ✅ | Подключение к базе данных |
$params |
array | ❌ | Параметры действия (по умолчанию []) |
Пример:
$action = new SomeAction($db, ['id' => 5]);
Абстрактный метод — должен быть реализован в каждом дочернем классе. Содержит основную бизнес-логику действия.
| Возвращает | Описание |
|---|---|
mixed |
Результат выполнения действия (может быть void, string, array и т.д.) |