Laravel缓存视图中的PHP League Commonmark$环境错误



在将Laravel项目升级到PHP8后,我经常会遇到以下错误:

Passing an $environment into the "LeagueCommonMarkCommonMarkConverter" constructor is deprecated in 1.6 and will not be supported in 2.0; use MarkdownConverter instead

堆栈跟踪显示它是由缓存视图文件中的这一行触发的:

<?php echo e(IlluminateMailMarkdown::parse($slot)); ?>

我已经多次删除了所有缓存的视图(我以为可能有一些旧的缓存视图(,但这并没有解决问题

不确定这是否应该是一个报告的错误,因为这可能是在Laravel框架中修复的,但在升级到PHP8之前,我从未遇到过这个错误,所以我认为这与此有关。

我的头也撞到了这个。我一直在修改降价文件,但它们从来没有出现过——就像Laravel指错了地方一样。它是。。。

正在开发一个升级的Laravel应用程序(即,我从5.x开始,并随着时间的推移进行了升级(,因此存在两个潜在问题。

首先,在ip/config/mail.php中:您可能必须实际创建markdown路径。如果在降价之前发布了邮件,则会丢失整个降价邮件设置。你可以从git repo中提取它们,或者为了方便起见从这里提取:

'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],

第二个潜在的问题(尽管在您的情况下不太可能(如果您早些时候发布了这些邮件文件,HTML目录中的Laravel布局文件具有or运算符,这将阻塞。将这三个运算符更改为??

也许这会对你有所帮助,这取决于你从哪里开始:(

您收到的错误应该是league/commonmark1.6.0版本中添加的静默弃用错误。不幸的是,有一个错误导致它成为";用户通知";而不是贬损通知。将league/commonmark升级到1.6.2可能会解决此问题。

如果您在升级后仍然收到错误(并确保PHP的操作缓存已被清除(,则很可能是Laravel或您代码中的其他东西正在捕获并报告此静默错误-这是一件好事,因为我们希望人们知道此功能已被弃用并将被删除,但它不应该向您的日志发送垃圾邮件,因此,请仔细检查Laravel或PHP中与错误日志记录、错误级别和日志记录相关的任何设置。

来源:我是league/commonmark的维护者。

最终,我在Laravel Forge上将我的PHP版本设置为8,但在我用于部署的Laravel Envoyer上没有。。。希望这能帮助到有同样设置的人!

我也遇到了这个错误。我通过降级league/commonmark来修复它,请参阅

composer require league/commonmark 1.6.7
php artisan view:cache

发布可邮寄模板php artisan vendor:publish --tag=laravel-mail

相关内容

  • 没有找到相关文章

最新更新