Composer dump-autoload,问题

Composer dump-autoload, issue

准确地说,在使用 Laravel 4 进行项目时,我决定制作自己的帮助文件来容纳我的自定义函数。其中之一如下所示...

function pr($ar=array(), $bool=false){

   echo '<pre>';
   print_r($ar);
   echo '</pre>';

   if($bool){
      exit;
   }

}

在我的 composer.json 文件中,就在 autoload: classmap 之后,我添加了 myne, autoload:files -arrar 并包含了我的自定义文件 app/helpers ,如下图所示..

            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ],

        "others":[
            "app/helpers.php"
        ]

然后我切换到我的终端 window 和 运行 以下命令

composer dump-autoload -o  

但我仍然遇到错误,我的 pr() 函数未定义...然后我尝试了 artisan 替代方案...[-o] 优化文件

php artisan dump-autoload

但它仍然拒绝工作...然后我将数组名称从

更改为
"others":[
            "app/helpers.php"
        ]

"files":[
            "app/helpers.php"
        ]

然后我得到了想要的响应,我的代码现在可以看到我编写的自定义函数,我想知道是否有我应该遵循的模式,否则,就我而言,我误会了“文件”,对于“其他”,我得到了错误,但是我在这里错过了什么,我所看到的只是数组表示的名称字符串值....

根据official documentation

Currently PSR-0 autoloading, PSR-4 autoloading, classmap generation and files includes are supported. PSR-4 is the recommended way though since it offers greater ease of use (no need to regenerate the autoloader when you add classes).

所以 "others" 没有工作的原因是因为它不被作曲家支持。 "others"根本没有意义,而"files"其实有一个specific autoloading mechanism.

作曲家就是这样工作的。在 autoload 部分你需要使用 files 当你想加载一些文件时。例如,在我的 Laravel 5 项目中:

"autoload": {
    "classmap": [
        "database",
        "tests/TestCase.php"
    ],
    "psr-4": {
        "App\": "app/",
        "verify\": "verify/"
    },
    "files": [
        "app/Helpers/functions.php"
    ]
},

如果您查看 documentation,您会发现您需要使用 files 来通过自动加载器加载任何额外的文件。