[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: AdcAutoloader.php
Страницы: 1, 2, 3, 4
twin
Пока суть да дело, набросал автозагрузчик, который хочу подключить по умолчанию.

Сразу попрошу воздержаться от комментариев про велосипеды, композер и прочая. Сейчас речь не о том.
По существу вопроса желательно. :)

Особо тут и разглядывать нечего, всего 20 строчек полезного кода.

<?php

/**
* Устанавливает путь до репозитария по умолчанию.
*/

defined('ABC_BASE_PATH') or define('ABC_BASE_PATH', dirname(dirname(dirname(__DIR__))));

/**
* Устанавливает имя директории репозитария по умолчанию.
*/

defined('ABC_REPOSITORY_NAME') or define('ABC_REPOSITORY_NAME', basename(dirname(dirname(__DIR__))));

/**
* Устанавливает имя директории с версиями по умолчанию.
*/

defined('ABC_VERSIONS_NAME') or define('ABC_VERSIONS_NAME', 'versions');

/**
*
* При инициализации класса попытается загрузить файл
* по стандарту PSR-4 (упрощенный вариант, без префиксов)
*
* Находит файлы, начиная от корневой директории сервера
* или от папки с именем, установленном в константе
*
* Пример 1:
*
* new \abc\components\Example;
*
* найдет файл по пути
*
* ROOT/vendor/abc/components/Example.php
*
* Пример 2:
*
* new \app\components\Example;
*
* подключит файл по пути
*
* ROOT/version/app/components/Example.php
*
*
*
@return void
*/

spl_autoload_register(function ($class) {

$files[] = ABC_REPOSITORY_NAME .'/'. $class;
$files[] = ABC_VERSIONS_NAME .'/'. $class;

foreach ($files as $file) {
$file = stream_resolve_include_path(ABC_BASE_PATH .'/'. $file .'.php');

if(is_readable($file)) {
include_once $file;
break;
}
}
}
);


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.