Download the PHP package lemax10/simple-actions without Composer
On this page you can find all versions of the php package lemax10/simple-actions. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package simple-actions
Laravel Simple Actions
Реализация подхода простых действий. Суть подхода одно действий равно одному объекту. Своего рода отсылка к laravel actions, но в более упрощенной реализации и не перегруженная контекстами.
Действие (action)
Помним, что одно действие должно быть равным одному объекту. Реализуем объект действие.
Пример:
Дейтсвие в единой транзакции
Действие в единой транзакции, может быть как совокупонстью действий, так и совокупностью запросов к БД требующим соблюдения целостности и реализации в единой транзакции.
Для реализации действий единой транзакции необходимо определить свойство объекта: $singleTransaction
в true
значение.
Кешируемые действия
Каждое действие поддерживает кеширование результата. В таком случае, при повторном обращении к действию с тем же набором параметров, результатом будет выпуступать закешированные данные.
События действий
Каждое действие имеет события которые возможно вызывать ДО выполнения или после ПОСЛЕ выполнения. Это позволяет подписываться на результат действий слушателями, или работать с набором входящих аргументов.
Доступные события которые могут быть навешены на действия:
beforeRun
- Вызывается ДО вызова метода handle.
afterRun
- Вызывается после получения результата метода handle
Описание вспомогательных методов
ExampleAction::make()
- Создать экземпляр объекта действия
->run(...)
- Обратиться к реализации действия. Сигнатура определяется объектом действия
->remember(string $key[, Closure|\DateTimeInterface|\DateInterval|int|null $ttl])
- Результат действия должен быть закеширован и переиспользован
->rememberForever(string $key)
- Результат действия должен быть навсегда закеширован и переиспользован
->tags(array $tags)
- Устанавливаем теги кеш данных которыми будут помечены результаты.
Модификация и расширение
Учитывая природу подхода, расширение действий не предусматривается текущей реализаций. Вызов действий происходит через Laravel Container, благодаря чему вы можете в любой момент подменить реализацию того или иного действий в том числе глобально, главное сохранять сигнатуру действий.
Пример переопределения: