phine / psr4
一个实现 PSR-4 标准的 PHP 库。
Requires
- php: >=5.3.3
Requires (Dev)
- league/phpunit-coverage-listener: ~1.0
- phine/test: ~1.0
Suggests
- ext-apc: For caching on PHP 5.4 or older.
- ext-apcu: For caching on PhP 5.5 or newer.
This package is not auto-updated.
Last update: 2021-12-07 01:42:18 UTC
README
PSR-4 标准的简单实现。
概要
PSR-4 库提供了 PSR-4 标准的简单实现。此外,还包含用于调试类自动加载过程的类,以及用于提高性能的缓存。
要求
- PHP >= 5.3.3
- APC(如果在使用 PHP 5.4 及更早版本上的
APCLoader
) - APCu(如果在使用 PHP 5.5 及更新版本上的
APCLoader
)
安装
通过 Composer
$ composer require "phine/psr4=~1.0"
用法
您可能想要先使用标准加载类
use Phine\PSR4\Loader(); $loader = new Loader();
有了新的加载器,您接下来需要将命名空间前缀映射到它们的基目录路径。
$loader->map('Namespace\\Prefix', '/base/directory/path');
虽然您可能一次只能注册一个命名空间前缀,但您可以为每个 map()
调用指定一个或多个目录路径。要传递多个目录路径,您可以简单地传递一个目录路径数组。
您也可以将多个 map()
调用链在一起
$loader ->map('One\\Prefix', '/one/path') ->map('Two\\Prefix', '/two/path') ->map('Three\\Prefix', '/three/path');
当您准备好使用加载器时,您需要注册它
$loader->register();
您可以在任何时候注册加载器,例如在开始映射命名空间前缀到路径之前。在加载器注册之后映射的任何命名空间前缀都将由加载器使用。
现在您可以自动加载您已注册的命名空间前缀的类
$myInstance = new One\Prefix\MyClass();
调试
如果您发现您在自动加载类时遇到问题,您可能想要使用 DebugLoader
类。当类文件找不到,或者加载的文件中实际上不存在该类时,此类将抛出异常。
使用调试加载器与使用标准加载器一样简单
use Phine\PSR4\DebugLoader; $loader = new DebugLoader();
缓存
当您准备好在生产环境中使用您的项目时,您可能想要使用支持缓存的加载器版本。目前,仅支持 APC,但根据需求可以捆绑额外的支持。如果您需要支持缓存库,您将想要模仿捆绑缓存类中使用的代码。
APC
您需要创建一个新的 APCLoader
实例来使用 APC 缓存
use Phine\PSR4\APCLoader; $loader = new APCLoader($cacheKeyPrefix);
作为构造函数的一部分,您需要指定一个缓存键前缀,该前缀将用于在 APC 中存储类文件路径。前缀可以是您需要的任何内容。
使用前缀 PSR4-Classes-
并加载类 My\Example
将生成类的文件路径的缓存键 PSR4-Classes-My\Example
。
了解以下信息可能很有用:一旦类文件的路径被缓存,即使它不再存在,也不会过期或刷新。您需要清除缓存或使用版本控制方案来更新前缀。
API 文档
您可以在以下链接找到API 文档。
许可
本库在MIT 许可下提供。