Skip to content
Snippets Groups Projects

more like builder pattern

Merged Krzysztof Dyszczyk requested to merge feature/builder-pattern into devel
1 file
+ 1
1
Compare changes
  • Side-by-side
  • Inline
+ 48
17
@@ -3,31 +3,62 @@
namespace WPDesk\PluginBuilder\Builder;
use WPDesk\PluginBuilder\Plugin\AbstractPlugin;
use WPDesk\PluginBuilder\Storage\PluginStorage;
class AbstractBuilder {
protected static $instances = [];
abstract class AbstractBuilder {
/**
* Create plugin class
*/
public function build_plugin() {
}
/**
* @param string $class
* @param AbstractPlugin $object
* Store plugin class in some kind of storage
*/
protected function addToStorage( $class, $object ) {
if ( isset( self::$instances[ $class ] ) ) {
throw new Exception\ClassAlreadyExists( "Class {$class} already exists" );
public function store_plugin( PluginStorage $storage ) {
}
self::$instances[ $class ] = $object;
/**
* Init plugin internal structure
*/
public function init_plugin() {
}
/**
* @param string $class
*
* Return built plugin
* @return AbstractPlugin
*/
protected function getFromStorage( $class ) {
if ( isset( self::$instances[ $class ] ) ) {
return self::$instances[ $class ];
} else {
throw new Exception\ClassNotExists( "Class {$class} not exists in storage" );
abstract function get_plugin();
/**
* Set settings class in plugin
*
* @param $settings
*/
public function set_settings( $settings ) {
}
/**
* Set view class in plugin
*
* @param $view
*/
public function set_view( $view ) {
}
/**
* Set tracker class in plugin
*
* @param $tracker
*/
public function set_tracker( $tracker ) {
}
/**
* Set helper class in plugin
*
* @param $helper
*/
public function set_helper( $helper ) {
}
}
\ No newline at end of file
Loading