Автозагрузка классов на PHP
31.10.2017 07:59:20 pm
Писал для своего небольшого проекта автозагрузку классов, возможно, кому то пригодится.
Выкладываю код (функция loading()):
Работать можно так:
Либо так:
В общем то, это одно и тоже.
Теперь давайте разберемся, что тут у нас. Функция loading принимает один параметр:
Выкладываю код (функция loading()):
# Функция loading() - автозагрузка классов
# $thing - Название и директория файла | класса (без '.php')
function loading($thing)
{
if (preg_match('|\.|', $thing))
{
$way = explode('.', $thing);
$thing = str_replace('.', '/', $thing);
$class = array_pop($way);
}
else
{
$class = $thing;
}
if (file_exists($thing . '.php'))
{
require_once($thing . '.php');
$subject = new $class();
return $subject;
}
return false;
}
# Функция loading() END
Работать можно так:
$variable = loading('folder.class')->method($value);
Либо так:
$class = loading('folder.class');
$variable = $class->method($value);
В общем то, это одно и тоже.
Теперь давайте разберемся, что тут у нас. Функция loading принимает один параметр:
folder.class
, в данном случаи folder
- это название папки, где лежит файл class.php с классом. Вместо слеша пишем точку, функция заменить все точки на слеши, разобьет полученную строку на массив, последний элемент массива будет использоваться, как название файла с классом (название класса и файла должно совпадать). Расширение .php
писать не надо.- Жалоба