Php 如何在运行时添加Composer自动加载类映射

Php 如何在运行时添加Composer自动加载类映射,php,composer-php,runtime,autoload,Php,Composer Php,Runtime,Autoload,以这种方式为Composer自动加载添加目录(Composer.json) 但每次在我自己的项目目录中创建新类时,运行composer dumpautoload总是很烦人 如何在运行时添加目录 我知道什么是PSR-4。但是,当您有超过100个类并使用数百个模板进行HTML呈现时,这不是解决方案。我将不得不在模板中编写很多“使用foo\bar”。这是不正常的。只有两种方法可以告诉Composer如何查找未记录在类映射中的类,即PSR-0和PSR-4。PSR-0适用于所有类型的类,PSR-4仅适用于

以这种方式为Composer自动加载添加目录(Composer.json)

但每次在我自己的项目目录中创建新类时,运行composer dumpautoload总是很烦人

如何在运行时添加目录


我知道什么是PSR-4。但是,当您有超过100个类并使用数百个模板进行HTML呈现时,这不是解决方案。我将不得不在模板中编写很多“使用foo\bar”。这是不正常的。

只有两种方法可以告诉Composer如何查找未记录在类映射中的类,即PSR-0和PSR-4。PSR-0适用于所有类型的类,PSR-4仅适用于名称空间中的类


一般来说,应该能够将代码构造为PSR-0或PSR-4,尤其是在编写新代码的情况下——这就是为什么类映射自动加载仅被视为能够处理不符合PSR的旧遗留代码的一种方式。对新代码使用类映射自动加载是不正常的。

加载类PSR-4样式而不是类映射。您应该编写兼容的项目结构。这样你就可以使用composer.json中的部分了。@MattS,我知道。但在这种情况下,我必须在数百个html模板中定义大量的“用法”。这就是问题所在。您可以在自动加载程序中设置PSR-0,并将所有内容保留在根命名空间中。无需添加
use
语句。或者跳过composer并编写自定义自动加载器。基本的自动装弹机非常简单。
"autoload": {
    "classmap": [
        "/var/www/lib",
        "/var/www/source"
    ]
}