मैं किसी प्रकार का फ़ंक्शन बनाने की कोशिश कर रहा हूं जो किसी दिए गए चर से कक्षा को लोड और तत्काल करता है। कुछ इस तरह:मैं एक चरणीय वर्ग पर एक स्थिर विधि कैसे कॉल कर सकता हूं?
<?php
function loadClass($class) {
$sClassPath = SYSPATH."/classes/{$class}.php";
if (file_exists($sClassPath)) {
require_once($sClassPath);
$class = $class::getInstance();
}
}
?>
तो मैं इसे इस तरह का उपयोग करें:
<?php
loadClass('session');
?>
यह शामिल हैं और सत्र वर्ग का दृष्टांत चाहिए।
Btw: स्थिर getInstance समारोह इस कोड से आता है:
<?php
$session = session::getInstance();
?>
:
<?php
function getCallingClass() {
$backtrace = debug_backtrace();
$method = $backtrace[1]['function'];
$file = file($backtrace[1]['file']);
$line = $file[($backtrace[1]['line'] - 1)];
$class = trim(preg_replace("/^.+?([A-Za-z0-9_]*)::{$method}\(.*$/s", "\\1\\2", $line));
if(! class_exists($class)) {
return false;
} return $class;
}
class Core {
protected static $instances = array();
public static function getInstance() {
$class = getCallingClass();
if (!isset(self::$instances[$class])) {
self::$instances[$class] = new $class();
} return self::$instances[$class];
}
}
?>
बात यह है कि अभी जिस तरह से एक वर्ग में फ़ंक्शन का उपयोग करने के लिए है यह है लेकिन अब मैं इसे एक फ़ंक्शन में बनाना चाहता हूं ताकि मुझे कभी भी कोड की उस पंक्ति का उपयोग न करना पड़े। मैं बस लोड क्लास ('सत्र') कहता हूं; और मैं $ सत्र-> blablablafunction() का उपयोग कर सकता हूं;