【问题标题】:Laravel composer dump-autoload not applying new PSR-4 structureLaravel composer dump-autoload 未应用新的 PSR-4 结构
【发布时间】:2014-10-22 23:43:27
【问题描述】:

当我composer dump-autoload 时,我的 PSR4 结构没有注册。这是我的作曲家,条目是 src/Booksmart :

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php",
        "app/controllers/Api",
    ]
},
"psr-4": {
    "Booksmart\\": "src/Booksmart"
},

这是我的目录结构:

src/
    Booksmart/
        Advance/
            Advance.php

Advance.php 看起来像这样:

<?php
namespace Booksmart\Advance

class Advance
{

}

我的vendor/composer/autoload_psr4.php 没有显示我的Booksmart 命名空间的新条目,并且肯定没有加载Advance.php 类。这似乎很容易搞砸,我错过了什么?

【问题讨论】:

  • psr-4 应该在自动加载中。
  • 详情!!非常感谢。

标签: php laravel composer-php psr-4


【解决方案1】:

我觉得你不需要作曲。就我而言,我在“Advance”类中支付这样的命名空间。例如namespace App\src\Bookmart\Advance。然后在依赖类use App\src\Bookmart\Advance;.

【讨论】:

    【解决方案2】:

    PSR-4 必须在自动加载中:

    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/controllers/Api",
        ],
    
        "psr-4": {
            "Booksmart\\": "src/Booksmart"
        },
    
    },
    

    【讨论】:

    • 好吧,我也这样做了。但是,当我使用转储自动加载“不带 -o”时,它不包括我的 PSR-4。但优化确实如此。你有什么建议吗?
    猜你喜欢
    • 2016-01-23
    • 2013-06-15
    • 2018-06-06
    • 2015-03-27
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2016-09-11
    相关资源
    最近更新 更多