EventLoader
module allow you to load events from a event files.
- ProcessWire
3.0
or newer - PHP
7.0
or newer
Install the module from the modules directory:
Via Composer
:
composer require trk/processwire-event-loader
Via git clone
:
cd your-processwire-project-folder/
cd site/modules/
git clone https://github.com/trk/EventLoader.git
- Module will check below folders for events:
/site/templates/events
/site/templates/configs/events
/site/modules/*/events
/site/modules/*/configs/events
- Loading events from
site/ready.php
file
<?php namespace ProcessWire;
if(!defined("PROCESSWIRE")) die();
EventLoader::load(__DIR__ . '/templates', 'ready.');
- Event file:
site/templates/configs/events/ready.hello-world.php
<?php
namespace ProcessWire;
class HelloController
{
public function greeting()
{
echo 'Hello World !';
exit;
}
}
return [
// 'run' => true, // Also you can pass run option for this file
'events' => [
'/hello-world' => [HelloController::class, 'greeting'],
'Page::private' => [
'run' => wire()->user->isLoggedin()
'type' => 'method',
'fn' => function (HookEvent $e) {
$e->return = 'This will run, if user logged in';
}
],
'Page::hello' => [
'type' => 'method',
'fn' => function (HookEvent $e) {
$message = is_string($e->arguments(0)) ? $e->arguments(0) : '';
$e->return = $message;
}
]
]
];
- Usage
<?php
echo $page->hello('World');