Laravel:作曲家dumpautoload之后的代码工作

时间:2019-04-15 02:21:21

标签: php laravel laravel-5 composer-php laravel-5.2

过去两年我一直在开发应用程序,其中有50多个控制器和模态等

我正在使用laravel版本5.2

突然出现了一个异常,该类不存在类的方法,该代码很好,并且在该特定控制器变旧之前就可以运行。

我跑了php artisan cache:clearcomposer dumpautoload

代码开始工作

我很好奇那里发生了什么,laravel cache:clear的工作原理,为什么问题突然出现好几年了

3 个答案:

答案 0 :(得分:2)

我认为某些文件的路径有一些更改,并且autoloader文件较旧,因此您无法使用路径composer dump-autoload访问较旧的类/文件,从而重新生成了autoload.php文件确保路径正确,现在您可以按预期工作。

thread可能会让您有了更好的主意。

答案 1 :(得分:0)

当您将项目从一台服务器移到另一台服务器或更改项目目录时,会发生这些类型错误或异常。其原因是缓存文件引用未找到文件,并且在使用composer dump-autoload时会刷新自动加载的文件,而php artisan config:cache命令用于清除缓存并再次缓存文件。

答案 2 :(得分:0)

我认为作曲家dump-autoload会重新生成需要包含在项目中的所有类的列表(autoload_classmap.php)。当您在项目中有新课程时的理想选择。每当我们运行“ composer dump-autoload”时,Composer都会重新读取composer.json文件以建立要自动加载的文件列表。