From a77d6bcfa006a066ed568579f97bf0015b2eb0d3 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Tue, 21 Jan 2020 10:08:02 +0200 Subject: [PATCH] Event improvements --- bin/plugin | 10 +++++++++- ...sEvent.php => PermissionsRegisterEvent.php} | 18 +++++++++++++++++- system/src/Grav/Events/PluginsLoadedEvent.php | 18 ++++++++++++++++++ system/src/Grav/Events/SessionStartEvent.php | 13 ++++++++++--- 4 files changed, 54 insertions(+), 5 deletions(-) rename system/src/Grav/Events/{RegisterPermissionsEvent.php => PermissionsRegisterEvent.php} (53%) diff --git a/bin/plugin b/bin/plugin index 3c431e379..9350a1f77 100755 --- a/bin/plugin +++ b/bin/plugin @@ -2,6 +2,7 @@ setup($environment); $grav['config']->init(); $grav['uri']->init(); $grav['users']; -$grav['plugins']->init(); + +$plugins = $grav['plugins']; +$plugins->init(); + +// Plugins Loaded Event +$event = new PluginsLoadedEvent($grav, $plugins); +$grav->dispatchEvent($event); + $grav['themes']->init(); $app = new Application('Grav Plugins Commands', GRAV_VERSION); diff --git a/system/src/Grav/Events/RegisterPermissionsEvent.php b/system/src/Grav/Events/PermissionsRegisterEvent.php similarity index 53% rename from system/src/Grav/Events/RegisterPermissionsEvent.php rename to system/src/Grav/Events/PermissionsRegisterEvent.php index ab86ac497..b0189c89b 100644 --- a/system/src/Grav/Events/RegisterPermissionsEvent.php +++ b/system/src/Grav/Events/PermissionsRegisterEvent.php @@ -11,16 +11,32 @@ namespace Grav\Events; use Grav\Framework\Acl\Permissions; -class RegisterPermissionsEvent +/** + * Permissions Register Event + * + * This event is called the first time $grav['permissions'] is being called. + * + * Use this event to register any new permission types you use in your plugins. + * + * @property Permissions $permissions Permissions instance. + */ +class PermissionsRegisterEvent { /** @var Permissions */ public $permissions; + /** + * PermissionsRegisterEvent constructor. + * @param Permissions $permissions + */ public function __construct(Permissions $permissions) { $this->permissions = $permissions; } + /** + * @return array + */ public function __debugInfo(): array { return (array)$this; diff --git a/system/src/Grav/Events/PluginsLoadedEvent.php b/system/src/Grav/Events/PluginsLoadedEvent.php index 2e7c0421d..de0c94ed5 100644 --- a/system/src/Grav/Events/PluginsLoadedEvent.php +++ b/system/src/Grav/Events/PluginsLoadedEvent.php @@ -12,6 +12,16 @@ namespace Grav\Events; use Grav\Common\Grav; use Grav\Common\Plugins; +/** + * Plugins Loaded Event + * + * This event is called from InitializeProcessor. + * + * This is the first event plugin can see. Please avoid using this event if possible. + * + * @property Grav $grav Grav container. + * @property Plugins $plugins Plugins instance. + */ class PluginsLoadedEvent { /** @var Grav */ @@ -19,12 +29,20 @@ class PluginsLoadedEvent /** @var Plugins */ public $plugins; + /** + * PluginsLoadedEvent constructor. + * @param Grav $grav + * @param Plugins $plugins + */ public function __construct(Grav $grav, Plugins $plugins) { $this->grav = $grav; $this->plugins = $plugins; } + /** + * @return array + */ public function __debugInfo(): array { return [ diff --git a/system/src/Grav/Events/SessionStartEvent.php b/system/src/Grav/Events/SessionStartEvent.php index 0f163d04e..1f2d95a86 100644 --- a/system/src/Grav/Events/SessionStartEvent.php +++ b/system/src/Grav/Events/SessionStartEvent.php @@ -9,14 +9,21 @@ namespace Grav\Events; -use Grav\Framework\Session\Session; +use Grav\Framework\Session\SessionInterface; +/** + * Plugins Loaded Event + * + * This event is called from $grav['session']->start() right after successful session_start() call. + * + * @property SessionInterface $session Session instance. + */ class SessionStartEvent { - /** @var Session */ + /** @var SessionInterface */ public $session; - public function __construct(Session $session) + public function __construct(SessionInterface $session) { $this->session = $session; }