awsm / wp-wrapper
Wrapping WordPress for more beautiful code.
dev-master
2021-03-08 11:15 UTC
Requires
- monolog/monolog: ^1.0
Requires (Dev)
- wp-coding-standards/wpcs: dev-master
This package is auto-updated.
Last update: 2024-12-08 19:53:19 UTC
README
Wrapping WordPress for more beautiful code.
Installation
Use composer to add WP Wrapper to our code.
composer require awsm/wp-wrapper
Plugins
The plugin wrapper helps you to initialize your plugin. This is a simple example for a plugin.
<?php /** * Plugin Name: Example plugin. */ // Path to composer autoload file. require dirname( __FILE__ ) .'/vendor/autoload.php'; (new \Awsm\WP_Wrapper\Plugin\Plugin() ) ->add_translation( 'example-plugin', dirname(__DIR__) . '/languages' ) ->add_task(My_Task::class) ->boot();
Tasks
A task is a class with your program code and contains the task interface.
<?php /** * Example service. **/ class My_Task implements \Awsm\WP_Wrapper\Interfaces\Task { public function run() { // Your code here } }
Task runner
The task runner is a trait which can be used in classes which have to start tasks.
<?php /** * Example task runner class. **/ class My_Task_Runner { use \Awsm\WP_Wrapper\Tasks\Task_Runner; public function __construct() { $this->run_tasks(); } } (new My_Task_Runner())->add_task( My_Task::class );
But better load the scripts where they have to be loaded. Use the action interface to do your actions.
<?php /** * Example task runner class. **/ class My_Task_Runner implements Awsm\WP_Wrapper\Interfaces\Actions { use \Awsm\WP_Wrapper\Tasks\Task_Runner; public function __construct() { $this->run_tasks(); } public function add_actions(){ add_action( 'select_a_hook_here', [ $this, 'run_tasks'] ); } } (new My_Task_Runner())->add_task( My_Task::class );
Task depency injection
It is possible to use depency injection in the constructor by passing objects on task addition.