过去两年我一直在开发应用程序,其中有50多个控制器和模态等
我正在使用laravel版本5.2
突然出现了一个异常,该类不存在类的方法,该代码很好,并且在该特定控制器变旧之前就可以运行。
我跑了php artisan cache:clear
和composer dumpautoload
代码开始工作
我很好奇那里发生了什么,laravel cache:clear的工作原理,为什么问题突然出现好几年了
答案 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文件以建立要自动加载的文件列表。