未找到 Heroku 类“NumberFormatter”

问题描述

在 Heroku 中部署我的 Laravel 7 应用程序时出现此错误,它仅出现在 Heroku 中,而不出现在我的本地框 (localhost) 中

未找到“NumberFormatter”类(视图:...)

Screenshot of Error Message

服务器详细信息

  • Heroku
  • PHP 7.4.12
  • Laravel 框架 7.30.4

解决方法

NumberFormatter classDocs 需要 PHP Internationalization extension (intl)Docs,而且 Heroku Heroku Built-in ExtensionsHeroku Docs 上没有内置此扩展。

相反,Heroku 允许您使用 optional extensionsHeroku Docs

要使用它们,您可以使用 composer 命令来要求它(“ext-intl”):

composer require ext-intl

或者您可以手动将其添加到 require sectionComposer Docs 中的 composer.json

{
  "require": {
    "ext-intl": "*"
  }
}

提交文件并将更改推送到 Heroku。该错误应该消失,直到您找到下一个缺失的类。

这是另一个例子,如果您有一个基于 Composer 的 PHP 项目,那么最好在 composer.json 文件中记录正在使用的扩展。

当这一天到来时,您已经将它们记录在 Composer JSON 中。

像 Heroku 这样的系统也可以从中受益!