From a19c16a7b53c67663f3423f1d81899be225fc642 Mon Sep 17 00:00:00 2001 From: Khoubza Younes Date: Sun, 6 Dec 2020 14:04:54 +0100 Subject: [PATCH] clean up config and add delay stamp --- Resources/config/aliases.yaml | 27 ----- Resources/config/config.yaml | 154 ++++++++++++++++++++++-- Resources/config/event_subscribers.yaml | 29 ----- Resources/config/filters.yaml | 14 --- Resources/config/middlewares.yaml | 18 --- Resources/config/presenters.yaml | 26 ---- Resources/config/services.yaml | 25 ---- Resources/config/storage.yaml | 11 -- Resources/config/twig.yaml | 7 -- Storage/Storage.php | 22 ++++ 10 files changed, 166 insertions(+), 167 deletions(-) delete mode 100644 Resources/config/aliases.yaml delete mode 100644 Resources/config/event_subscribers.yaml delete mode 100644 Resources/config/filters.yaml delete mode 100644 Resources/config/middlewares.yaml delete mode 100644 Resources/config/presenters.yaml delete mode 100644 Resources/config/services.yaml delete mode 100644 Resources/config/storage.yaml delete mode 100644 Resources/config/twig.yaml diff --git a/Resources/config/aliases.yaml b/Resources/config/aliases.yaml deleted file mode 100644 index 0f601d68..00000000 --- a/Resources/config/aliases.yaml +++ /dev/null @@ -1,27 +0,0 @@ -services: - Flasher\Prime\Config\Config: '@flasher.config' - Flasher\Prime\Manager\AbstractManager: '@flasher.abstract_manager' - Flasher\Prime\Flasher: '@flasher' - Flasher\Prime\Presenter\PresenterManager: '@flasher.presenter_manager' - Flasher\Prime\Renderer\RendererManager: '@flasher.renderer_manager' - Flasher\Prime\Middleware\FlasherBus: '@flasher.flasher_bus' - Flasher\Prime\EventDispatcher\EventDispatcher: '@flasher.event_dispatcher' - Flasher\Symfony\Storage\Storage: '@flasher.storage' - Flasher\Prime\Storage\StorageManager: '@flasher.storage_manager' - Flasher\Prime\Filter\FilterManager: '@flasher.filter_manager' - Flasher\Prime\Filter\FilterBuilder: '@flasher.filter_builder' - Flasher\Prime\Filter\DefaultFilter: '@flasher.filter.default' - Flasher\Prime\Factory\AbstractFactory: '@flasher.abstract_factory' - Flasher\Prime\Presenter\AbstractPresenter: '@flasher.abstract_presenter' - Flasher\Prime\Presenter\Adapter\JsonPresenter: '@flasher.presenter.json' - Flasher\Prime\Presenter\Adapter\HtmlPresenter: '@flasher.presenter.html' - - flasher.factory_manager: '@flasher' - Flasher\Prime\FlasherInterface: '@flasher' - Flasher\Prime\Storage\StorageManagerInterface: '@flasher.storage_manager' - Flasher\Prime\Renderer\RendererManagerInterface: '@flasher.renderer_manager' - Flasher\Prime\Presenter\PresenterManagerInterface: '@flasher.presenter_manager' - Flasher\Prime\Middleware\FlasherBusInterface: '@flasher.flasher_bus' - Flasher\Prime\Filter\FilterManagerInterface: '@flasher.filter_manager' - Flasher\Prime\EventDispatcher\EventDispatcherInterface: '@flasher.event_dispatcher' - Flasher\Prime\Storage\StorageInterface: '@flasher.storage' diff --git a/Resources/config/config.yaml b/Resources/config/config.yaml index 103377f2..876166ae 100644 --- a/Resources/config/config.yaml +++ b/Resources/config/config.yaml @@ -1,13 +1,3 @@ -imports: -# - { resource: 'services.yaml' } - - { resource: 'middlewares.yaml' } - - { resource: 'storage.yaml' } - - { resource: 'presenters.yaml' } - - { resource: 'filters.yaml' } - - { resource: 'twig.yaml' } - - { resource: 'event_subscribers.yaml' } - - { resource: 'aliases.yaml' } - services: flasher.config: class: Flasher\Prime\Config\Config @@ -33,3 +23,147 @@ services: flasher.renderer_manager: class: Flasher\Prime\Renderer\RendererManager parent: 'flasher.abstract_manager' + + flasher.flasher_bus: + class: Flasher\Prime\Middleware\FlasherBus + + flasher.middleware.add_created_stamp: + class: Flasher\Prime\Middleware\AddCreatedAtStampMiddleware + public: false + tags: + - { name: 'flasher.middleware' } + + flasher.middleware.add_hops_stamp: + class: Flasher\Prime\Middleware\AddHopsStampMiddleware + public: false + tags: + - { name: 'flasher.middleware' } + + flasher.middleware.add_priority_stamp: + class: Flasher\Prime\Middleware\AddPriorityStampMiddleware + public: false + tags: + - { name: 'flasher.middleware' } + + flasher.middleware.add_delay_stamp: + class: Flasher\Prime\Middleware\AddDelayStampMiddleware + public: false + tags: + - { name: 'flasher.middleware' } + + flasher.storage: + class: Flasher\Symfony\Storage\Storage + arguments: + - '@session' + + flasher.storage_manager: + class: Flasher\Prime\Storage\StorageManager + arguments: + - '@flasher.storage' + - '@flasher.event_dispatcher' + + flasher.event_dispatcher: + class: Flasher\Prime\EventDispatcher\EventDispatcher + + flasher.event_listener.post_filter: + class: Flasher\Prime\EventDispatcher\EventListener\PostFilterListener + public: false + arguments: + - '@flasher.storage' + tags: + - { name: 'flasher.event_subscriber' } + + flasher.event_listener.post_flush: + class: Flasher\Prime\EventDispatcher\EventListener\PostFlushListener + public: false + arguments: + - '@flasher.storage' + tags: + - { name: 'flasher.event_subscriber' } + + flasher.event_listener.middleware: + class: Flasher\Prime\EventDispatcher\EventListener\MiddlewareListener + public: false + arguments: + - '@flasher.flasher_bus' + tags: + - { name: 'flasher.event_subscriber' } + + flasher.event_listener.storage: + class: Flasher\Prime\EventDispatcher\EventListener\StorageListener + public: false + arguments: + - '@flasher.storage' + tags: + - { name: 'flasher.event_subscriber' } + + flasher.filter_manager: + class: Flasher\Prime\Filter\FilterManager + parent: 'flasher.abstract_manager' + + flasher.filter_builder: + class: Flasher\Prime\Filter\FilterBuilder + + flasher.filter.default: + class: Flasher\Prime\Filter\DefaultFilter + arguments: + - '@flasher.filter_builder' + tags: + - { name: 'flasher.filter' } + + flasher.presenter_manager: + class: Flasher\Prime\Presenter\PresenterManager + parent: 'flasher.abstract_manager' + + flasher.abstract_presenter: + class: Flasher\Prime\Presenter\AbstractPresenter + abstract: true + arguments: + - '@flasher.event_dispatcher' + - '@flasher.config' + - '@flasher.storage_manager' + - '@flasher.filter_manager' + - '@flasher.renderer_manager' + + flasher.presenter.html: + class: Flasher\Prime\Presenter\Adapter\HtmlPresenter + parent: 'flasher.abstract_presenter' + tags: + - { name: 'flasher.presenter' } + + flasher.presenter.json: + class: Flasher\Prime\Presenter\Adapter\JsonPresenter + parent: 'flasher.abstract_presenter' + tags: + - { name: 'flasher.presenter' } + + flasher.twig.extension: + class: Flasher\Symfony\Twig\FlasherTwigExtension + arguments: + - '@flasher.presenter.html' + tags: + - { name: 'twig.extension' } + + Flasher\Prime\Config\Config: '@flasher.config' + Flasher\Prime\Flasher: '@flasher' + Flasher\Prime\Presenter\PresenterManager: '@flasher.presenter_manager' + Flasher\Prime\Renderer\RendererManager: '@flasher.renderer_manager' + Flasher\Prime\Middleware\FlasherBus: '@flasher.flasher_bus' + Flasher\Prime\EventDispatcher\EventDispatcher: '@flasher.event_dispatcher' + Flasher\Symfony\Storage\Storage: '@flasher.storage' + Flasher\Prime\Storage\StorageManager: '@flasher.storage_manager' + Flasher\Prime\Filter\FilterManager: '@flasher.filter_manager' + Flasher\Prime\Filter\FilterBuilder: '@flasher.filter_builder' + Flasher\Prime\Filter\DefaultFilter: '@flasher.filter.default' + Flasher\Prime\Presenter\Adapter\JsonPresenter: '@flasher.presenter.json' + Flasher\Prime\Presenter\Adapter\HtmlPresenter: '@flasher.presenter.html' + + flasher.factory_manager: '@flasher' + Flasher\Prime\FlasherInterface: '@flasher' + Flasher\Prime\Storage\StorageManagerInterface: '@flasher.storage_manager' + Flasher\Prime\Renderer\RendererManagerInterface: '@flasher.renderer_manager' + Flasher\Prime\Presenter\PresenterManagerInterface: '@flasher.presenter_manager' + Flasher\Prime\Middleware\FlasherBusInterface: '@flasher.flasher_bus' + Flasher\Prime\Filter\FilterManagerInterface: '@flasher.filter_manager' + Flasher\Prime\EventDispatcher\EventDispatcherInterface: '@flasher.event_dispatcher' + Flasher\Prime\Storage\StorageInterface: '@flasher.storage' diff --git a/Resources/config/event_subscribers.yaml b/Resources/config/event_subscribers.yaml deleted file mode 100644 index 32679a92..00000000 --- a/Resources/config/event_subscribers.yaml +++ /dev/null @@ -1,29 +0,0 @@ -services: - flasher.event_dispatcher: - class: Flasher\Prime\EventDispatcher\EventDispatcher - - Flasher\Prime\EventDispatcher\EventListener\PostFilterListener: - public: false - tags: - - 'flasher.event_subscriber' - - Flasher\Prime\EventDispatcher\EventListener\PostFlushListener: - public: false - arguments: - - '@flasher.storage' - tags: - - 'flasher.event_subscriber' - - Flasher\Prime\EventDispatcher\EventListener\MiddlewareListener: - public: false - arguments: - - '@flasher.flasher_bus' - tags: - - 'flasher.event_subscriber' - - Flasher\Prime\EventDispatcher\EventListener\StorageListener: - public: false - arguments: - - '@flasher.storage' - tags: - - 'flasher.event_subscriber' diff --git a/Resources/config/filters.yaml b/Resources/config/filters.yaml deleted file mode 100644 index b3b036e9..00000000 --- a/Resources/config/filters.yaml +++ /dev/null @@ -1,14 +0,0 @@ -services: - flasher.filter_manager: - class: Flasher\Prime\Filter\FilterManager - parent: 'flasher.abstract_manager' - - flasher.filter_builder: - class: Flasher\Prime\Filter\FilterBuilder - - flasher.filter.default: - class: Flasher\Prime\Filter\DefaultFilter - arguments: - - '@flasher.filter_builder' - tags: - - 'flasher.filter' diff --git a/Resources/config/middlewares.yaml b/Resources/config/middlewares.yaml deleted file mode 100644 index 65bb3e6b..00000000 --- a/Resources/config/middlewares.yaml +++ /dev/null @@ -1,18 +0,0 @@ -services: - flasher.flasher_bus: - class: Flasher\Prime\Middleware\FlasherBus - - Flasher\Prime\Middleware\AddCreatedAtStampMiddleware: - public: false - tags: - - 'flasher.middleware' - - Flasher\Prime\Middleware\AddHopsStampMiddleware: - public: false - tags: - - 'flasher.middleware' - - Flasher\Prime\Middleware\AddPriorityStampMiddleware: - public: false - tags: - - 'flasher.middleware' diff --git a/Resources/config/presenters.yaml b/Resources/config/presenters.yaml deleted file mode 100644 index 7af2bff1..00000000 --- a/Resources/config/presenters.yaml +++ /dev/null @@ -1,26 +0,0 @@ -services: - flasher.presenter_manager: - class: Flasher\Prime\Presenter\PresenterManager - parent: 'flasher.abstract_manager' - - flasher.abstract_presenter: - class: Flasher\Prime\Presenter\AbstractPresenter - abstract: true - arguments: - - '@flasher.event_dispatcher' - - '@flasher.config' - - '@flasher.storage_manager' - - '@flasher.filter_manager' - - '@flasher.renderer_manager' - - flasher.presenter.html: - class: Flasher\Prime\Presenter\Adapter\HtmlPresenter - parent: 'flasher.abstract_presenter' - tags: - - 'flasher.presenter' - - flasher.presenter.json: - class: Flasher\Prime\Presenter\Adapter\JsonPresenter - parent: 'flasher.abstract_presenter' - tags: - - 'flasher.presenter' diff --git a/Resources/config/services.yaml b/Resources/config/services.yaml deleted file mode 100644 index e967a885..00000000 --- a/Resources/config/services.yaml +++ /dev/null @@ -1,25 +0,0 @@ -services: - flasher.config: - class: Flasher\Prime\Config\Config - arguments: - - null - - flasher.abstract_manager: - class: Flasher\Prime\Manager\AbstractManager - abstract: true - arguments: - - '@flasher.config' - - flasher: - class: Flasher\Prime\Flasher - parent: 'flasher.abstract_manager' - - flasher.renderer_manager: - class: Flasher\Prime\Renderer\RendererManager - parent: 'flasher.abstract_manager' - - flasher.abstract_factory: - class: Flasher\Prime\Factory\AbstractFactory - abstract: true - arguments: - - '@flasher.flasher_bus' diff --git a/Resources/config/storage.yaml b/Resources/config/storage.yaml deleted file mode 100644 index 6ffa1ced..00000000 --- a/Resources/config/storage.yaml +++ /dev/null @@ -1,11 +0,0 @@ -services: - flasher.storage: - class: Flasher\Symfony\Storage\Storage - arguments: - - '@session' - - flasher.storage_manager: - class: Flasher\Prime\Storage\StorageManager - arguments: - - '@flasher.storage' - - '@flasher.event_dispatcher' diff --git a/Resources/config/twig.yaml b/Resources/config/twig.yaml deleted file mode 100644 index 3fa176ea..00000000 --- a/Resources/config/twig.yaml +++ /dev/null @@ -1,7 +0,0 @@ -services: - Flasher\Symfony\Twig\FlasherTwigExtension: - class: - arguments: - - '@flasher.presenter.html' - tags: - - 'twig.extension' diff --git a/Storage/Storage.php b/Storage/Storage.php index 50189bb4..2c3c59ab 100644 --- a/Storage/Storage.php +++ b/Storage/Storage.php @@ -51,6 +51,28 @@ final class Storage implements StorageInterface $this->session->set(self::ENVELOPES_NAMESPACE, $store); } + /** + * @inheritDoc + */ + public function update($envelopes) + { + $envelopes = is_array($envelopes) ? $envelopes : func_get_args(); + $map = UuidStamp::indexWithUuid($envelopes); + + $store = $this->all(); + foreach ($store as $index => $envelope) { + $uuid = $envelope->get('Flasher\Prime\Stamp\UuidStamp')->getUuid(); + + if (!isset($map[$uuid])) { + continue; + } + + $store[$index] = $map[$uuid]; + } + + $this->session->set(self::ENVELOPES_NAMESPACE, $store); + } + /** * @inheritDoc */