Composer dump-autoload,问题

时间:2015-09-19 04:40:53

标签: php laravel composer-php helpers artisan

在准确使用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"
        ]

然后我切换到终端窗口并运行以下命令

composer dump-autoload -o  

但我仍然有错误,我的pr()函数未定义...然后我尝试了工匠替代... [ - o]来优化文件

php artisan dump-autoload

但它仍然拒绝工作......然后我改变了数组名称

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

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

然后我得到了想要的回复,我的代码现在可以看到我写的自定义函数了,请我知道是否有我应该遵循的模式,否则,在我的情况下,我误认为& #34;文件&#34;,用于&#34;其他人&#34;我得到了错误,但是,我在这里错过了什么,我看到的只是数组表示的名称字符串值....

2 个答案:

答案 0 :(得分:2)

这就是作曲家的作品。在autoload部分中,当您要加载某些文件时,需要使用files。在我的Laravel 5项目中,我有例如:

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

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

答案 1 :(得分:0)

根据official documentation

  

目前PSR-0自动加载,PSR-4自动加载,类图生成   和文件包括支持。 PSR-4是推荐的方式   因为它提供了更大的易用性(无需再生   添加类时自动加载器。)

因此"others"不起作用的原因是因为作曲家不支持它。 "others"只是毫无意义,而"files"实际上只有specific autoloading mechanism