php - 致命错误:未捕获的 ArgumentCountError:函数 Spatie\Ssr\Engines\V8::__construct() 的参数太少
问题描述
我想为我的 vue 应用程序使用服务器端渲染,我找到了这个库
我遵循了有关如何设置我的应用程序以能够使用服务器端渲染的教程,但是当我将其部署到服务器并尝试查看页面时,我收到了这个错误
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Spatie\Ssr\Engines\V8::__construct(), 0 passed
我有 php 的经验,通常可以通过将所需的参数传递给类构造函数来修复此错误。
在这种情况下,库文档没有提供任何关于V8
类构造函数的文档。
目前,我的代码与库的 github 存储库中提供的代码段相同
<?php
require_once __DIR__."/vendor/autoload.php";
use Spatie\Ssr\Renderer;
use Spatie\Ssr\Engines\V8;
$engine = new V8();
$renderer = new Renderer($engine);
echo $renderer
->entry(__DIR__."/js/main.js")
->render();
?>
有没有办法解决这个问题?
解决方案
我建议看一下他们的代码。因为它是开放的,你甚至喜欢它。所以应该没那么难。
根据他们的单元测试,V8 实例是这样构造的:
$engine = new V8(new V8Js());
看看https://github.com/spatie/server-side-rendering/blob/master/tests/Engines/V8Test.php
所以 V8 类中的构造函数需要一个 V8Js 对象。正如代码所说,该参数不是可选的:
public function __construct(V8Js $v8)
{
$this->v8 = $v8;
}
在这里找到:https ://github.com/spatie/server-side-rendering/blob/master/src/Engines/V8.php
有趣的是,有关此主题的问题已关闭。也许应该重新打开它并提供更多详细信息? https://github.com/spatie/server-side-rendering/issues/32
推荐阅读
- react-native - 如何在 React Native 中显示渐变 SVG 图像
- android - Android - 电子邮件 InputField 不接受用户输入
- swift - 为什么这个排序算法会失败?
- xamarin - Xamarin 中的 Bitrise CI
- javascript - 角度项目中的图标在浏览器上不可见
- javascript - 如果是整数,则追加 ,00
- macos - 无论如何要退出终端中的命令吗?
- python - Pandas - 将数据框列转储到字典中
- python-3.x - 如何构建基于时间的 EWMA
- amazon-web-services - AWS GetActivityTask 从同一个状态机执行