phine/psr4

该包已被弃用且不再维护。未建议替代包。

一个实现 PSR-4 标准的 PHP 库。

1.0.0 2013-12-05 18:08 UTC

This package is not auto-updated.

Last update: 2021-12-07 01:42:18 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads

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 许可下提供。