fedora / autoloader
Fedora PHP 自动加载器
1.0.1
2020-02-13 02:43 UTC
Requires
- php: >= 5.3.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- phpunit/phpunit: ^4.8.35 || ^5.7.11 || ^6.0.5 || ^7 || ^8
- theseer/autoload: ^1.22
This package is not auto-updated.
Last update: 2024-09-23 07:11:27 UTC
README
静态 PSR-4,PSR-0 和类映射自动加载器。包括必需和可选依赖项的加载器。
自动加载器
PSR-4
\Fedora\Autoloader\Autoload::addPsr4($prefix, $path, $prepend = false)
PSR-0
\Fedora\Autoloader\Autoload::addPsr0($prefix, $path, $prepend = false)
类映射
\Fedora\Autoloader\Autoload::addClassMap(array $classMap, $path)
phpab
模板
有关其用法的示例,请参阅 tests/genclassmap.sh。
依赖项加载器
遍历提供的依赖项数组
- 如果依赖项不是数组
- 如果依赖项是必需的,只有当它存在时才要求/加载,否则抛出
\RuntimeException
。 - 如果依赖项不是必需的,只有当它存在时才要求/加载。
- 如果依赖项是必需的,只有当它存在时才要求/加载,否则抛出
- 如果依赖项是数组
- 遍历所有项,直到找到第一个存在的项,然后要求/加载。如果没有找到项且依赖项是必需的,则如果存在,将要求/加载最后一个项,否则抛出
\RuntimeException
。
- 遍历所有项,直到找到第一个存在的项,然后要求/加载。如果没有找到项且依赖项是必需的,则如果存在,将要求/加载最后一个项,否则抛出
必需依赖项
\Fedora\Autoloader\Dependencies::required(array $requiredDependencies)
示例 1
\Fedora\Autoloader\Dependencies::required(array( '/usr/share/php/RequiredFoo/autoload.php', '/usr/share/php/RequiredBar/autoload.php', ));
等同于
if ( is_file('/usr/share/php/RequiredFoo/autoload.php') && is_readable('/usr/share/php/RequiredFoo/autoload.php') ) { require_once '/usr/share/php/RequiredFoo/autoload.php'; } else { throw new \RuntimeException("File not found: '/usr/share/php/RequiredFoo/autoload.php'"); } if ( is_file('/usr/share/php/RequiredBar/autoload.php') && is_readable('/usr/share/php/RequiredBar/autoload.php') ) { require_once '/usr/share/php/RequiredBar/autoload.php'; } else { throw new \RuntimeException("File not found: '/usr/share/php/RequiredBar/autoload.php'"); }
示例 2
\Fedora\Autoloader\Dependencies::required(array( array( '/usr/share/php/RequiredFooVersion1/autoload.php', '/usr/share/php/RequiredFooVersion2/autoload.php', '/usr/share/php/RequiredFooVersion3/autoload.php', ), ));
等同于
if ( is_file('/usr/share/php/RequiredFooVersion1/autoload.php') && is_readable('/usr/share/php/RequiredFooVersion1/autoload.php') ) { require_once '/usr/share/php/RequiredFooVersion1/autoload.php'; } elseif ( is_file('/usr/share/php/RequiredFooVersion2/autoload.php') && is_readable('/usr/share/php/RequiredFooVersion2/autoload.php') ) { require_once '/usr/share/php/RequiredFooVersion2/autoload.php'; } elseif ( is_file('/usr/share/php/RequiredFooVersion3/autoload.php') && is_readable('/usr/share/php/RequiredFooVersion3/autoload.php') ) { require_once '/usr/share/php/RequiredFooVersion3/autoload.php'; } else { throw new \RuntimeException("Files not found: " . "'/usr/share/php/RequiredFooVersion1/autoload.php'" . "|| '/usr/share/php/RequiredFooVersion2/autoload.php'" . "|| '/usr/share/php/RequiredFooVersion3/autoload.php'" ); }
可选依赖项
\Fedora\Autoloader\Dependencies::optional(array $optionalDependencies)
示例 1
\Fedora\Autoloader\Dependencies::optional(array( '/usr/share/php/OptionalFoo/autoload.php', '/usr/share/php/OptionalBar/autoload.php', ));
等同于
if ( is_file('/usr/share/php/OptionalFoo/autoload.php') && is_readable('/usr/share/php/OptionalFoo/autoload.php') ) { require_once '/usr/share/php/OptionalFoo/autoload.php'; } if ( is_file('/usr/share/php/OptionalBar/autoload.php') && is_readable('/usr/share/php/OptionalBar/autoload.php') ) { require_once '/usr/share/php/OptionalBar/autoload.php'; }
示例 2
\Fedora\Autoloader\Dependencies::optional(array( array( '/usr/share/php/OptionalFooVersion1/autoload.php', '/usr/share/php/OptionalFooVersion2/autoload.php', '/usr/share/php/OptionalFooVersion3/autoload.php', ), ));
等同于
if ( is_file('/usr/share/php/OptionalFooVersion1/autoload.php') && is_readable('/usr/share/php/OptionalFooVersion1/autoload.php') ) { require_once '/usr/share/php/OptionalFooVersion1/autoload.php'; } elseif ( is_file('/usr/share/php/OptionalFooVersion2/autoload.php') && is_readable('/usr/share/php/OptionalFooVersion2/autoload.php') ) { require_once '/usr/share/php/OptionalFooVersion2/autoload.php'; } elseif ( is_file('/usr/share/php/OptionalFooVersion3/autoload.php') && is_readable('/usr/share/php/OptionalFooVersion3/autoload.php') ) { require_once '/usr/share/php/OptionalFooVersion3/autoload.php'; }