rebelcode / wp-plugin-sdk
An SDK used by RebelCode to build WordPress plugins.
dev-main
2024-04-24 11:07 UTC
Requires
- php: >= 7.2
- ext-json: *
- dhii/containers: ^v0.1.4
- dhii/services: ^0.1.1-alpha3
- psr/container: ^1.1.1
Requires (Dev)
- brain/monkey: ^2.6
- mikey179/vfsstream: 2.0.x-dev
- mockery/mockery: 1.3.x-dev
- phpunit/phpunit: ^8.5
- roots/wordpress-no-content: >= 6.0
This package is auto-updated.
Last update: 2024-10-24 12:24:29 UTC
README
An opinionated SDK for building modular WordPress plugins.
This is primarily built for RebelCode plugins. Feel free to use it for your own projects, but kindly be aware that we may not accept pull requests that hinder our own development.
Installation
Install with Composer:
composer require rebelcode/wp-plugin-sdk
Usage
Here's a quick example:
/** * @wordpress-plugin * Plugin Name: My Plugin * Version: 0.1 */ use RebelCode\WpSdk\Plugin; add_action('plugins_loaded', function () { $plugin = Plugin::create(__FILE__); $plugin->run(); })
// modules.php return [ 'shortcode' => new MyShortcodeModule(), ];
// MyShortcodeModule.php use Dhii\Services\Factories\FuncService; use Dhii\Services\Extensions\ArrayExtension; use Psr\Container\ContainerInterface; use RebelCode\WpSdk\Module; use RebelCode\WpSdk\Wp\Shortcode; class MyShortcodeModule extends Module { public function getFactories(): array { return [ // Services for the [rain] shortcode and its render function 'shortcode' => Shortcode::factory('rain', 'render_fn'), 'render_fn' => new FuncService(function () { return 'The rain in Spain stays mainly in the plain'; }), ]; } public function getExtensions() : array{ return [ // Extend WordPress's shortcode list 'wp/shortcodes' => new ArrayExtension(['shortcode']), ]; } }
The full documentation can be found in the repository's Wiki.
License
GPL-3.0+ © RebelCode