Skip to content
Snippets Groups Projects
Commit 1f094e40 authored by Grzegorz Rola's avatar Grzegorz Rola
Browse files

Hookable

parent 7d99e55f
No related branches found
No related tags found
1 merge request!7Feature/hookable object
Pipeline #6975 failed
...@@ -8,7 +8,7 @@ namespace WPDesk\PluginBuilder\Plugin; ...@@ -8,7 +8,7 @@ namespace WPDesk\PluginBuilder\Plugin;
* @author Grzegorz * @author Grzegorz
* *
*/ */
abstract class AbstractPlugin implements \WPDesk_Translable, Hookable { abstract class AbstractPlugin implements \WPDesk_Translable, HookableCollection, Hookable {
/** @var \WPDesk_Plugin_Info */ /** @var \WPDesk_Plugin_Info */
protected $plugin_info; protected $plugin_info;
...@@ -53,21 +53,14 @@ abstract class AbstractPlugin implements \WPDesk_Translable, Hookable { ...@@ -53,21 +53,14 @@ abstract class AbstractPlugin implements \WPDesk_Translable, Hookable {
/** /**
* Add hookable object. * Add hookable object.
*
* @param Hookable|HookablePluginDependant $hookable_object Hookable object.
*/ */
public function add_hookable( $hookable_object ) { public function add_hookable( $hookable_object ) {
if ( $hookable_object instanceof HookablePluginDependant ) {
$hookable_object->set_plugin( $this ); $hookable_object->set_plugin( $this );
$this->hookable_objects[] = $hookable_object;
} }
$this->hookable_objects[] = $hookable_object;
/**
* Set plugin - currently do nothing.
*
* @param AbstractPlugin $plugin Plugin.
*
* @return null
*/
public function set_plugin( $plugin ) {
return;
} }
/** /**
......
...@@ -4,29 +4,6 @@ namespace WPDesk\PluginBuilder\Plugin; ...@@ -4,29 +4,6 @@ namespace WPDesk\PluginBuilder\Plugin;
interface Hookable { interface Hookable {
/**
* Add hookable object.
*
* @param Hookable $hookable_object Hookable object to add.
*/
public function add_hookable( $hookable_object );
/**
* Set Plugin.
*
* @param AbstractPlugin $plugin Plugin.
*
* @return null
*/
public function set_plugin( $plugin );
/**
* Get plugin.
*
* @return AbstractPlugin.
*/
public function get_plugin();
/** /**
* Init hooks (actions and filters). * Init hooks (actions and filters).
* *
......
<?php
namespace WPDesk\PluginBuilder\Plugin;
interface HookableCollection {
/**
* Add hookable object.
*
* @param Hookable $hookable_object Hookable object to add.
*/
public function add_hookable( $hookable_object );
/**
* Init hooks (actions and filters).
*
* @return null
*/
public function hooks();
}
<?php
namespace WPDesk\PluginBuilder\Plugin;
interface HookablePluginDependant extends Hookable {
/**
* Set Plugin.
*
* @param AbstractPlugin $plugin Plugin.
*
* @return null
*/
public function set_plugin( $plugin );
/**
* Get plugin.
*
* @return AbstractPlugin.
*/
public function get_plugin();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment