PSR-4 自动加载机

PSR-4 是一个公认的建议,概述了通过文件名自动加载类的标准。建议将此建议替换为早期(现已弃用)的 PSR-0

完全限定的类名应符合以下要求:

 \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
  • 它必须包含顶级供应商名称空间(例如:Alphabet
  • 它可以包含一个或多个子命名空间(例如:Google\AdWord
  • 它必须包含一个结束类名称(例如:KeywordPlanner

因此,最终的类名称将是 Alphabet\Google\AdWord\KeywordPlanner。完全限定的类名也应转换为有意义的文件路径,因此 Alphabet\Google\AdWord\KeywordPlanner 将位于 [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php

从 PHP 5.3.0 开始,可以定义自定义自动加载器功能, 以根据你定义的路径和文件名模式加载文件。

# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});

用适用于你的结构的值替换位置(‘classes /’)和文件扩展名(’.class.php’)。

Composer 包管理器支持 PSR-4 ,这意味着,如果你遵循标准,则可以使用 Composer 的供应商自动加载器自动加载项目中的类。

# Edit the composer.json file to include
{
    "autoload": {
        "psr-4": {
            "Alphabet\\": "[path_to_source]"
        }
    }
}

重新生成自动加载器文件

$ composer dump-autoload

现在,在你的代码中,你可以执行以下操作:

<?php

require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();