Файловый менеджер - Редактировать - /var/www/portal.bdu.ac.bd/public_html/wp-content/plugins/hide-my-wp/classes/ObjController.php
Назад
<?php /** * The class creates object for plugin classes * * @file The Object Creator Class file * @package HMWP/Objects * @since 4.0.0 */ defined('ABSPATH') || die('Cheatin\' uh?'); class HMWP_Classes_ObjController { /** * * * @var array of instances */ public static $instances; /** * * * @var array from core config */ public static $config; /** * Create class instance * * @param $className * @param array $args * * @return mixed * @throws Exception */ public static function getClass( $className, $args = array() ) { if ($class = self::getClassByPath($className) ) { if (! isset(self::$instances[ $className ]) ) { /* check if class is already defined */ if (! class_exists($className) || $className == get_class() ) { //include the class file self::includeClass($class['dir'], $class['name']); //check if abstract $check = new ReflectionClass($className); $abstract = $check->isAbstract(); if (! $abstract ) { self::$instances[ $className ] = new $className(); if (! empty($args) ) { call_user_func_array(array( self::$instances[ $className ], '__construct' ), $args); } return self::$instances[ $className ]; } else { self::$instances[ $className ] = true; } } } else { return self::$instances[ $className ]; } }else{ //Stop all hooks on error defined('HMWP_DISABLE') || define('HMWP_DISABLE', true); //get the class dir and name $class = self::getClassPath($className); //Show the file not found error HMWP_Classes_Error::showError('File not found: ' . $class['dir'] . $class['name'] . '.php', 'danger'); } return false; } /** * Clear the class instance * * @param string $className * @param array $args * * @return mixed * @throws Exception */ public static function newInstance( $className, $args = array() ) { if (self::getClassByPath($className) ) { /* check if class is already defined */ if (class_exists($className) ) { //check if abstract self::$instances[ $className ] = new $className(); if (! empty($args) ) { call_user_func_array(array( self::$instances[ $className ], '__construct' ), $args); } return self::$instances[ $className ]; } else { return self::getClass($className, $args); } } return false; } /** * Include Class if exists * * @param $classDir * @param $className * * @throws Exception */ private static function includeClass( $classDir, $className ) { //Initialize WordPress Filesystem $wp_filesystem = self::initFilesystem(); $path = $classDir . $className . '.php'; if ($wp_filesystem->exists($path) ) { include_once $path; } } /** * Check if the class is correctly set * * @param string $className * * @return boolean */ private static function checkClassPath( $className ) { $path = preg_split('/[_]+/', $className); if (is_array($path) && count($path) > 1 ) { if (in_array(_HMWP_NAMESPACE_, $path) ) { return true; } } return false; } /** * Get the path of the class and name of the class * * @param string $className * @return array|false */ public static function getClassPath( $className ) { $dir = ''; if (self::checkClassPath($className) ) { $path = preg_split('/[_]+/', $className); for ( $i = 1; $i < sizeof($path) - 1; $i ++ ) { $dir .= strtolower($path[ $i ]) . '/'; } return array( 'dir' => _HMWP_ROOT_DIR_ . '/' . $dir, 'name' => $path[ sizeof($path) - 1 ] ); } return false; } /** * Get the valid class by path * * @param $className * @return array|bool|false */ public static function getClassByPath( $className ) { //Initialize WordPress Filesystem $wp_filesystem = self::initFilesystem(); //get the class dir and name $class = self::getClassPath($className); if ($wp_filesystem->exists($class['dir'] . $class['name'] . '.php') || file_exists($class['dir'] . $class['name'] . '.php') ) { return $class; } return false; } /** * Instantiates the WordPress filesystem * * @return mixed */ public static function initFilesystem() { // The WordPress filesystem. global $wp_filesystem; if (! function_exists('WP_Filesystem') ) { include_once ABSPATH . 'wp-admin/includes/file.php'; } WP_Filesystem(); if (!$wp_filesystem->connect()) { add_filter( 'filesystem_method', function ($method) { return 'direct'; }, 1 ); WP_Filesystem(); } return $wp_filesystem; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.28 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка