_define_constants(); $this->_include_files(); $this->_init_classes(); } protected function __clone() {} static public function get_instance() { if( is_null( self::$_instance ) ) { self::$_instance = new self(); } return self::$_instance; } private function _define_constants() { define('WOODMART_HB_DEFAULT_ID', 'default_header'); define('WOODMART_HB_DEFAULT_NAME', 'Default header layout'); define('WOODMART_HB_DIR', get_template_directory() . '/inc/modules/header-builder/'); define('WOODMART_HB_TEMPLATES', get_template_directory() . '/header-elements/'); } private function _include_files() { $classes = array( 'Manager', 'HeaderFactory', 'HeadersList', 'Header', 'Elements', 'Styles', ); foreach ( $classes as $class ) { require_once WOODMART_HB_DIR . $class . '.php'; } } private function _init_classes() { $this->elements = new WOODMART_HB_Elements(); $this->list = new WOODMART_HB_HeadersList(); $this->factory = new WOODMART_HB_HeaderFactory( $this->elements, $this->list ); $this->manager = new WOODMART_HB_Manager( $this->factory, $this->list ); } } }