Skip to content
petersuhmPublic

About

A WordPress plugin framework built on top of Composer packages.

Resources

Stars

12 stars

Watchers

2 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Adventure

A WordPress plugin framework build on top of Composer packages

Please note that this is still very much a work-in-progress!

/*
 * Plugin Name: My Plugin
 */

use Adventure\WordPressPlugin;

class AwesomePlugin extends WordPressPlugin
{
    // ...
}

$plugin = new AwesomePlugin;

Dependency Injection Container

The WordPressPlugin class in Adventure is built on top of the Container package from the PHP League. This gives us everything we need: automatic dependency resolving, factory closures and service providers.

Event Emitter

The event emitter in Adventure is built on top of the Event package from the PHP League. It wraps the WordPress action API.

use Adventure\Events\EventServiceProvider;

// Enable the event emitter
$plugin->addServiceProvider(new EventServiceProvider);

// You can listen for your own events ...
$plugin['emitter']->when('test.event', function ()
{
    var_dump('event!'); die();
});
// ... and emit them.
$plugin['emitter']->emit('test.event');

Listening for WordPress actions

// Or, you can listen for WordPress actions (do_action())
$plugin['emitter']->whenWordPress('init', function ()
{
    var_dump('WordPress init!'); die();
});

Using classes as event listeners

// You can also implement your own event listeners
$plugin['emitter']->whenWordPress('init', $plugin['SayHelloWhenWordPressIsInitiated']);

// Creating listener classes is awesome, because it
// lets you use services automatically resolved out
// of the DI container
use League\Event\EventInterface;
use League\Event\ListenerInterface;

class SayHelloWhenWordPressIsInitiated implements ListenerInterface
{
    private $service;

    // RandomService is automatically resolved out of the
    // DI container
    public function __construct(RandomService $service)
    {
        $this->service = $service;
    }

    public function handle(EventInterface $event)
    {
        var_dump('Hello!'); die();
    }

    public function isListener($listener)
    {
        return $listener === $this;
    }
}

About

A WordPress plugin framework built on top of Composer packages.

Resources

Stars

12 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages