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;
* @author Grzegorz
*
*/
abstract class AbstractPlugin implements \WPDesk_Translable, Hookable {
abstract class AbstractPlugin implements \WPDesk_Translable, HookableCollection, Hookable {
/** @var \WPDesk_Plugin_Info */
protected $plugin_info;
......@@ -53,21 +53,14 @@ abstract class AbstractPlugin implements \WPDesk_Translable, Hookable {
/**
* Add hookable object.
*
* @param Hookable|HookablePluginDependant $hookable_object Hookable object.
*/
public function add_hookable( $hookable_object ) {
if ( $hookable_object instanceof HookablePluginDependant ) {
$hookable_object->set_plugin( $this );
$this->hookable_objects[] = $hookable_object;
}
/**
* Set plugin - currently do nothing.
*
* @param AbstractPlugin $plugin Plugin.
*
* @return null
*/
public function set_plugin( $plugin ) {
return;
$this->hookable_objects[] = $hookable_object;
}
/**
......
......@@ -4,29 +4,6 @@ namespace WPDesk\PluginBuilder\Plugin;
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).
*
......
<?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