0Pricing
PHP Academy · 课时

PSR-4 自动加载标准

了解 PSR-4 如何将命名空间片段映射到目录路径。

PSR-4 自动加载标准 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。

什么是自动加载

自动加载是指 PHP 在您首次使用某个类时自动加载该类的文件,无需手动使用 require。

自动加载之前

没有自动加载时,每个文件开头都要写几十个 require_once 调用,既脆弱又难以维护。

PSR-4 规则

PSR-4 将命名空间前缀映射到基础目录。给定前缀 App\ → src/:App\Models\User 会从 src/Models/User.php 加载。

映射公式

去除前缀,将剩余的反斜杠替换为目录分隔符,然后追加 .php。

App\Services\Payment\Stripe → src/Services/Payment/Stripe.php

composer.json 自动加载部分

在 composer.json 中定义 PSR-4 映射。修改后运行 composer dump-autoload。

// composer.json
{
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}

多个命名空间前缀

一个项目可以包含多个 PSR-4 映射,这对于分离测试命名空间很有用。

// composer.json
{
  "autoload":     { "psr-4": { "App\\": "src/" } },
  "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }
}

类名等于文件名

类名必须与文件名完全匹配(Linux 区分大小写)。class UserService 必须位于 UserService.php 中。

每个文件一个类

PSR-4 要求每个文件中恰好包含一个类、接口或 Trait。多个定义会破坏自动加载。

PSR-4 与 PSR-0

PSR-0(已弃用)使用类名中的下划线作为目录分隔符。PSR-4 更简洁,也是当前标准。

生成的自动加载器

运行 composer dump-autoload 后,Composer 会写入 vendor/autoload.php。请在入口点只引入一次。

<?php
require __DIR__.'/vendor/autoload.php';

$user = new App\Models\User(); // autoloads automatically

类映射回退机制

Composer 还会为不遵循 PSR-4 的文件生成类映射。这对旧代码很有用。

实际目录布局

src/
  Models/User.php        → App\Models\User
  Http/Controllers/
    UserController.php   → App\Http\Controllers\UserController

快速检查

如果前缀 App\\ 映射到 src/,PSR-4 会在哪里查找 App\Services\Mailer?

常见问题解答

「PSR-4 自动加载标准」课时是免费的吗?

是的 — 「PSR-4 自动加载标准」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。

「PSR-4 自动加载标准」这节课中我会学到什么?

了解 PSR-4 如何将命名空间片段映射到目录路径。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「PSR-4 自动加载标准」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 声明和使用命名空间
  2. 嵌套命名空间与别名
  3. PSR-4 自动加载标准
  4. 注册自动加载器
← 返回 PHP Academy