| Server IP : 104.21.28.229 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/learnpress/inc/Helpers/ |
Upload File : |
<?php
namespace LearnPress\Helpers;
/**
* Class Config
* Read data config from file
*
* @package LP\Helpers
* @since 4.1.6.4
* @version 1.0.0
*/
class Config {
/*
* All of configurations of items
*
* @var array
*/
protected static $instance;
protected $file_name = '';
protected $items = array();
/**
* @var array Array name files config.
*/
protected $config_files = array();
/**
* @var string Folder store files config
*/
protected $dir;
/**
* Config constructor.
*
* @param array $items
*/
protected function __construct( array $items = array() ) {
$this->dir = LP_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR;
$this->items = $items;
}
/**
* Get the specified configuration value
*
* @param string $key | Format key: file_name:key_name:key_item:...
* @param string $path | from folder 'config'
*
* @return array|mixed
* @version 1.0.0
* @since 4.1.6.4
*/
public function get( string $key = '', string $path = '', array $args = [] ) {
extract( $args );
$data_config = array();
$data_config_by_key = array();
if ( empty( $key ) ) {
return $data_config;
}
$keys = explode( ':', $key );
$file_name = $keys[0];
$file_path = $this->dir . $path . DIRECTORY_SEPARATOR . $file_name . '.php';
if ( ! file_exists( $file_path ) ) {
return $data_config;
}
$store_file_config = $this->config_files[ $file_name ] ?? array();
if ( empty( $store_file_config ) ) {
$this->config_files[ $file_name ] = include $file_path;
}
$data_config = $this->config_files[ $file_name ];
$number_keys = count( $keys );
if ( 1 === $number_keys ) {
return $data_config;
} else {
$data_config_by_key = $data_config;
for ( $i = 1; $i < $number_keys; $i ++ ) {
$data_config_by_key = $data_config_by_key[ $keys[ $i ] ] ?? array();
}
return $data_config_by_key;
}
}
public static function instance(): self {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
}