PSR-4 是 PHP 的自动加载标准,通过命名空间前缀与目录的映射实现类文件自动加载,如 "App\": "src/" 对应 App\Controller\HomeController → src/Controller/HomeController.php,且需运行 composer dump-autoload 更新配置。
PSR-4 是 PHP 的一项自动加载标准,全称是 PHP Standard Recommendation 4,由 PHP Framework Interop Group(PHP-FIG)制定,目的是统一类文件的命名与目录结构规则,让不同项目的代码能被 Composer 等工具自动、可靠地加载,无需手动 require 或 include。
它规定了“类名如何映射到文件路径”,关键在于两部分:命名空间前缀(namespace prefix)和对应的根目录(base directory)。只要符合这个映射关系,自动加载器就能根据类名直接定位并载入对应文件。
\ 对应文件系统中的目录分隔符(如 / 或 \).php 结尾\ 结尾(例如 App\),不能是空字符串或纯全局命名空间假设你在 composer.json 中这样配置:
那么:
App\Controller\HomeController → 对应 src/Controller/HomeController.php
App\Model\User → 对应 src/Model/User.php
App\Utils\Helper → 对应 src/Utils/Helper.php
Composer 安装后生成的自动加载器会按此规则自动找文件,你只需 new App\Controller\HomeController(),无需额外引入。
PSR-0 已废弃,PSR-4 是它的简化替代版:
_ 转为目录分隔符(PSR-0 支持 Zend_Controller_Action 映射到 Zend/Controller/Action.php,PSR-4 不支持)FooBar 类放在 FooBar.php,但不允许用 foobar.php —— 文件名仍需首字母大写,这是 PHP 社区惯例,非 PSR-4 强制)虽然 PSR-4 看似简单,但常见问题有:
composer.json 后记得运行 composer dump-autoload 刷新自动加载映射autoload-dev 段落
mposer require 后开箱即用基本上就这些。PSR-4 不复杂,但它是现代 PHP 项目可维护、可复用的底层基础之一。