php - 如何在不重新安装的情况下使用 Composer 自动加载没有 namespace 的类?

标签 php composer-php autoload silex

我只需要自动加载一些类,我不喜欢疯狂的 psr-0 命名空间(无意冒犯)。

这曾经在我的项目中工作得很好:

"psr-0": {
    "": [
        "app/controller/",
        "app/model/"
    ]
}

由于某种原因它不再工作了,即使我使用的是相同的 Composer 版本。我需要它用于一个也使用 Silex 的新项目。这会不会与 Silex 发生冲突?

我知道“classmap”选项,但它有点没用,因为它要求我每次添加新类时都运行“composer install”。

有什么想法吗?

最佳答案

尝试使用“原始”的 JSON 属性;不是数组(就像你的例子)。 这对我来说适用于 psr-4 就像你说的那样,使用 "": "app/":

{
"autoload": {
    "psr-4": {
        "Robbie\\": "core/",
        "": "app/"
    }
},
"require": {
        "monolog/monolog": "1.2.*"
    } 
}

这为我提供了 core 目录下的 Robbie 命名空间,作为不受 Composer 、第 3 方(供应商)Monolog 命名空间和我的默认或app 目录下源的非命名空间。

composer 更新 之后,所有这些在包含生成的 autoload.php 时都可用:

<?php    
require_once 'vendor/autoload.php';
// ...    
?>    

关于php - 如何在不重新安装的情况下使用 Composer 自动加载没有 namespace 的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910626/

相关文章:

php - 适用于大量数据的 Google 货币转换器 api

php - 有谁知道支持复合键的 Kohana 的最佳 ORM?

php - Yii2-admin 和 Yii2-user 兼容性

php - 如何从在 PHP 中使用自动加载加载的类中捕获异常?

php - 在数据库中存储应用程序权限

php - 在 PHP 中通过引用传递数据库连接

php - composer.phar 安装旧包

php - docker-compose 覆盖容器中的目录

php - 从不同的文件和目录自动加载类和函数

codeigniter - 数据库不会根据 codeigniter 中的特定类型的 404 路由自动加载