Я построил класс «core», который загружает другие классы, и я хочу автоматически загружать все классы в spesific-папке с именем «class», я начал что-то строить, но понятия не имею если это хорошо.
В функции построения в основном классе я получаю массив с именами классов для загрузки.
Функция конструктора вызывает функцию с именем _loadClasses и в функции _loadClasses,
Я загружаю классы с помощью функции require_once() fucntion.
Тогда в верхней части страницы я добавляю общедоступную переменную с именем класса.
Например, "public $ example;"
Теперь, что осталось, чтобы создать объект класса, так это то, что я сделал.
Пример использования метода _loadClasses:
Автоматическая загрузка классов
require_once("class/user.class.php");
self::$user = new User();
Здесь приходит "автомат" часть.
Я хочу функцию _loadClasses, чтобы получить массив, например:
private function _loadClasses($classesToLoad = array('security', 'is'));
и теперь, я использую Glob загружать классы из папки «класса», имя синтаксиса файлов классов в папка «class» - это classname.class.php.
$classesArray = array(); // initialize the variable of all the web classes
$classesFiles = glob("class/*.php"); // gets all the web classes from the folder 'class'
foreach($classesFiles as $file) { // loop on the classes in the folder 'class'
$filename = explode('class/', $file);
$filename = $filename[1];
$className = explode('.class.php', $filename);
$className = $className[0];
if($className != 'index.php' || $className != 'database') {
array_push($classesArray, $className); // adds the class name into the array 'classesArray'
}
}
foreach($classesArray as $className) {
if(in_array($className, $classesToLoad)) {
require_once("class/$className.class.php");
$classLines = file("class/$className.class.php");
$classNameLine = $classLines[1];
$classNameLine = explode(' ', $classNameLine);
$classObjectName = $classNameLine[1];
$classObjectName = explode(" ", $classObjectName);
self::$$classObjectName = new $classObjectName();
}
}
мне нужно что-то подобное, проклятие это не работает, это просто, чтобы показать вам, что я хочу сделать с примером.
Заранее спасибо.
Почему бы вам просто не использовать надлежащий автозагрузчик? – PeeHaa