<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Autoload Composer
* Располагается в корне сайта в каталоге vendor
*/
if (file_exists(BASEPATH . 'vendor/autoload.php')) require_once BASEPATH . 'vendor/autoload.php';
/**
* Register autoload classes PSR-4
* https://www.php-fig.org/psr/psr-4/
* https://maxsite.org/page/php-autoload
*
* Файлы PSR4-классов располагаются в application/maxsite/common/psr4/
* Каталог указывает на namespace
*
* Пример:
* Файл: application/maxsite/common/psr4/Pdo/PdoConnect.php
*
* namespace Pdo;
* class PdoConnect {...}
*
* $dbPdo = new Pdo\PdoConnect;
*
*/
spl_autoload_register(function ($class) {
// разбиваем класс на элементы
$namespace = explode('\\', $class);
// получаем имя файла из имени класса - в $namespace окажется только namespace
$file = array_pop($namespace) . '.php';
// получаем путь на основе namespace
$path = implode(DIRECTORY_SEPARATOR, $namespace);
// формируем имя файла
$fn = getinfo('common_dir') . 'psr4' . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $file;
// pr($fn);
// проверка на существование файла и его подключение
if (file_exists($fn)) require $fn;
});
# end of file