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

如何解决Laravel 缓存视图中的 PHP League Commonmark $environment 错误

将 Laravel 项目升级PHP8 后,我经常收到此错误

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

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

<?PHP echo e(Illuminate\Mail\Markdown::parse($slot)); ?>

我已多次删除所有缓存视图(我认为其中可能有一些旧的缓存视图),但这并没有解决问题。

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

解决方法

我也很喜欢这个。我一直在对 Markdown 文件进行更改,但它们从未出现过 - 几乎就像 Laravel 指向错误的地方一样。它是...

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

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

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

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

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

,

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

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

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

,

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?