diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e0b7004d688756eeb682f867e46e641d5804fef2 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +[](https://gitlab.com/wpdesk/wp-builder/pipelines) +[](https://gitlab.com/wpdesk/wp-builder/commits/master) +[](https://packagist.org/packages/wpdesk/wp-builder) +[](https://packagist.org/packages/wpdesk/wp-builder) +[](https://packagist.org/packages/wpdesk/wp-builder) +[](https://packagist.org/packages/wpdesk/wp-builder) + +WP Builder +========== + +wp-builder defines interfaces and abstracts to create WordPress plugins. + +## Requirements + +PHP 5.6 or later. + +## Installation via Composer + +In order to install the bindings via [Composer](http://getcomposer.org/) run the following command: + +```bash +composer require wpdesk/wp-builder +``` + +## Example usage + +Use this code in main WordPress plugin file: + +```php +<?php + +class ContentExtender implements \WPDesk\PluginBuilder\Plugin\Hookable { + + public function hooks() { + add_filter( 'the_content', [ $this, 'append_sample_text_to_content' ] ); + } + + /** + * @param string $content + * @return string + */ + public function append_sample_text_to_content( $content ) { + return $content . ' Sample text'; + } +} + +class ExamplePlugin extends \WPDesk\PluginBuilder\Plugin\AbstractPlugin implements \WPDesk\PluginBuilder\Plugin\HookableCollection { + + use \WPDesk\PluginBuilder\Plugin\HookableParent; + + public function hooks() { + $this->add_hookable( new ContentExtender() ); + + $this->hooks_on_hookable_objects(); + } + +} + +$plugin_info = new WPDesk_Plugin_Info(); +$plugin_info->set_plugin_name( 'Example Plugin' ); + +$example_plugin = new ExamplePlugin( $plugin_info ); + +```