czachor/psr4-autoloader

基于 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md 的 PSR-4 自动加载器

dev-master 2017-02-22 22:16 UTC

This package is auto-updated.

Last update: 2024-09-18 00:36:02 UTC


README

规范: http://www.php-fig.org/psr/psr-4/

基于: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md

与原始文件相比的变化

  • 移除 "类" 后缀
  • 小的代码更改和清理

这是一个通用实现示例,包括允许单个命名空间前缀具有多个基本目录的可选功能。

给定以下路径文件系统中的 foo-bar 包类...

/path/to/packages/foo-bar/
    src/
        Baz.php             # Foo\Bar\Baz
        Qux/
            Quux.php        # Foo\Bar\Qux\Quux
    tests/
        BazTest.php         # Foo\Bar\BazTest
        Qux/
            QuuxTest.php    # Foo\Bar\Qux\QuuxTest

...按照以下方式添加 \Foo\Bar\ 命名空间前缀的类文件路径

 <?php
 // instantiate the loader
 $loader = new \Czachor\Psr4Autoloader;

 // register the autoloader
 $loader->register();

 // register the base directories for the namespace prefix
 $loader->addNamespace('Foo\Bar', '/path/to/packages/foo-bar/src');
 $loader->addNamespace('Foo\Bar', '/path/to/packages/foo-bar/tests');

以下行会导致自动加载器尝试从 /path/to/packages/foo-bar/src/Qux/Quux.php 加载 \Foo\Bar\Qux\Quux 类

 <?php
 new \Foo\Bar\Qux\Quux;

以下行会导致自动加载器尝试从 /path/to/packages/foo-bar/tests/Qux/QuuxTest.php 加载 \Foo\Bar\Qux\QuuxTest 类

 <?php
 new \Foo\Bar\Qux\QuuxTest;

安装

$ composer require czachor/psr4-autoloader

待办事项

  • 测试。