File: /www/wwwroot/www.scdc-marine.com/wp-content/themes/heku-cms/loader.php
<?php
namespace Heku;
use Heku\Library\LibraryLoader;
use Heku\HekuClass\Admin\AdminLoader;
use Heku\HekuClass\Common\CommonLoader;
use Heku\HekuClass\View\ViewLoader;
/**
* @package Heku
* @subpackage Classes/Heku
* @author Heku Daleconan <http://www.daleconan.com>
* @copyright Copyright (c) 2022-2024, Heku Daleconan
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
*/
if ( ! class_exists( 'Heku', false ) ) {
/**
* Main Heku Class
*
* @since 1.0
*/
final class Heku {
/**
* 类实现单例模式,类的独生子女
*/
private static $instance;
/**
* Plugin vars
*
* @return string
*/
public $version = '3.3.15';
/**
* 构造函数,保证空的构造函数
*/
public function __construct() {
}
/**
* 依赖注入的接口 Instance 方法
* 目标是 保证 init() 初始化方法 只执行一次
*
* @return self 唯一实例化的本类
*/
public static function instance() {
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Heku ) ) {
self::$instance = new Heku;
self::$instance->init();
}
return self::$instance;
}
private function init() {
spl_autoload_register('self::autoload'); // 自动加载依赖类
$this->load_library(); // 加载依赖库
$this->load_modules(); // 加载模板、模块2
}
private function load_library() {
$library = LibraryLoader::instance();
}
private function load_modules() {
//加载公共类
$common = CommonLoader::instance();
//加载后台设置项
$setting = AdminLoader::instance();
//加载模板
$templates = ViewLoader::instance();
}
/**
* 自动加载命名空间
*
* @return void
*/
public static function autoload($class){
//主题模块
if (strpos($class, 'Heku\\') !== false) {
$class = str_replace('Heku\\','',$class);
require_once HEKU_THEME_DIR . HK_DS . str_replace('\\', HK_DS, $class).'.php';
}
}
}
}
/**
* 这个函数负责 返回一个 单一实例 Heku
* 当启用插件的时候,可以在主体中调用,设置相关参数,和全局一样使用这个函数,因为此函数返回 的是单一实例,可以用于传递配置信息
* Example: <?php $heku = One_Heku_Fun(); ?>
*
* @return Heku
*/
Heku::instance();