首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel缓存视图中的PHP联盟Commonmark $environment错误

Laravel缓存视图中的PHP联盟Commonmark $environment错误
EN

Stack Overflow用户
提问于 2021-05-12 02:41:35
回答 3查看 656关注 0票数 1

在将一个Laravel项目升级到PHP8之后,我经常收到这样的错误:

代码语言:javascript
复制
Passing an $environment into the "League\CommonMark\CommonMarkConverter" constructor is deprecated in 1.6 and will not be supported in 2.0; use MarkdownConverter instead

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

代码语言:javascript
复制
<?php echo e(Illuminate\Mail\Markdown::parse($slot)); ?>

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

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

EN

回答 3

Stack Overflow用户

发布于 2021-05-12 03:34:28

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

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

首先,在ip/config/mail.php中:您可能需要实际创建标记路径。如果您在markdown之前发布了mailables,则整个markdown邮件设置将丢失。您可以从git代码库中获取它们,或者从此处获取它们以方便使用:

代码语言:javascript
复制
'markdown' => [
    'theme' => 'default',
    'paths' => [
        resource_path('views/vendor/mail'),
    ],
],

第二个潜在的问题(虽然在您的情况下不太可能)如果您之前发布了这些邮件文件,则HTML目录中的Laravel布局文件具有or操作符,这将导致阻塞。将这三个运算符更改为??

根据您是从哪里开始的,这可能会对您有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2021-05-12 19:46:56

您收到的错误应该是在1.6.0版本的league/commonmark中添加的静默弃用错误。不幸的是,有一个bug导致它成为“用户通知”而不是弃用通知。将league/commonmark升级到1.6.2 where this was fixed可能会解决此问题。

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

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

票数 0
EN

Stack Overflow用户

发布于 2021-06-22 17:52:37

最终,我在Laravel Forge上将PHP版本设置为8,而不是在我用于部署的Laravel Envoyer上。希望这对有相同设置的人有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67492622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档