如何在收到多个请求时阻止Laravel对其services.json文件进行错误处理?

时间:2015-06-28 16:22:53

标签: php json laravel

每次Laravel收到HTTP请求时,它似乎都在编写app/storage/meta/services.json文件的新版本。

当Laravel同时收到两个请求时,通常会导致services.json文件格式错误。我的假设是文件由两个进程同时打开和写入。

然后Laravel将抛出500错误:

array_merge(): Argument #2 is not an array 

当单个页面请求可能同时有多个AJAX调用时,这尤其麻烦。

我试过让文件不可写,但这导致Laravel在" Permission denied"错误。 Laravel在每次请求时都必须写入此文件似乎效率低下,当然,只有在更改任何服务提供者时才需要创建此清单吗?

是否有一些配置选项我没有发现以防止这种情况发生?

2 个答案:

答案 0 :(得分:0)

我最近阅读了一篇关于这个问题的论坛帖子。

建议的解决方法是

  

删除services.json文件并重新运行composer。

您可以在此处查看该主题以获取更多建议 https://laracasts.com/discuss/channels/general-discussion/getting-weird-error-in-laravel/?page=2

答案 1 :(得分:0)

对于任何绊倒这个的人来说,解决方案就是简单地运行工匠命令

php artisan optimize