<?php /** * Features Factory * * Author: Andrei Baicus <andrei@themeisle.com> * Created on: 17/08/2018 * * @package Neve\Core */ namespace Neve\Core; /** * The class responsible for instantiating new Neve features. * * @package Neve\Core * @author Themeisle <friends@themeisle.com> */ class Factory { /** * Modules * * @var array */ private $modules; /** * The modules namespace. * * @var string */ private $namespace; /** * Factory constructor. * * @param array $modules the modules that will be loaded. * @param string $namespace the modules namespace. */ public function __construct( $modules, $namespace = '\\Neve\\' ) { if ( ! is_array( $modules ) || empty( $modules ) ) { return; } $this->namespace = $namespace; $this->modules = $modules; } /** * Actually load the modules. */ public function load_modules() { foreach ( $this->modules as $module_name ) { $module = $this->build( $module_name ); if ( $module !== null ) { $module->init(); } } } /** * The build method for creating a new Neve module class. * * @since 1.0.0 * @access public * * @param string $class The name of the feature to instantiate. * * @return object|null */ public function build( $class ) { $full_class_name = $this->namespace . $class; return new $full_class_name(); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
settings | Folder | 0755 |
|
|
styles | Folder | 0755 |
|
|
traits | Folder | 0755 |
|
|
admin.php | File | 20.94 KB | 0644 |
|
builder_migrator.php | File | 11.44 KB | 0644 |
|
core_loader.php | File | 4.58 KB | 0644 |
|
dynamic_css.php | File | 5.38 KB | 0644 |
|
factory.php | File | 1.36 KB | 0644 |
|
front_end.php | File | 19.71 KB | 0644 |
|
limited_offers.php | File | 7.88 KB | 0644 |
|
migration_flags.php | File | 2.81 KB | 0644 |
|
supported_post_types.php | File | 1013 B | 0644 |
|
theme_info.php | File | 729 B | 0644 |
|
tracker.php | File | 1.34 KB | 0644 |
|