如何为我的项目创建 PSR-4 自动加载器?
Posted
技术标签:
【中文标题】如何为我的项目创建 PSR-4 自动加载器?【英文标题】:How to create a PSR-4 autoloader for my project? 【发布时间】:2020-07-10 03:08:27 【问题描述】:我正在创建一个 php 项目并希望实现 PSR-4 自动加载。
不知道需要在vendor目录下创建哪些文件来实现类文件的自动加载。
【问题讨论】:
【参考方案1】:如果您使用composer
,则无需创建自动加载器,而是让composer
完成它的工作并为您创建它。
您唯一需要做的就是在composer.json
上创建适当的配置并执行composer dump-autoload
。
例如:
"autoload":
"psr-4": "App\\": "src/"
通过上述操作,如果你有这样的文件结构
├── src/
│ ├── Controller/
│ ├── Model/
│ ├── View/
│ └── Kernel.php
├── public/
│ └── index.php
└── vendor/
执行composer dump-autoload
后,自动加载器将在vendor/autoload.php
上生成。
您的所有类都应该嵌套在App
命名空间内,并且每个文件只能放置一个类。
例如:
<?php /* src/Controller/Home.php */
namespace App\Controller;
class Home /* implementation */
您只需在入口点脚本中包含自动加载器(例如index.php
)。
<?php
require '../vendor/autoload.php';
这将允许您在此之后直接从任何地方直接加载您的类,如下所示:
use App\Controller\Home;
$homeController = new Home();
这在文档here 中有解释。
【讨论】:
一个漂亮的答案。 非常感谢您的回答。你让 Psr-4 自动加载器让我的生活更轻松了。以上是关于如何为我的项目创建 PSR-4 自动加载器?的主要内容,如果未能解决你的问题,请参考以下文章