PuPHPeteer php桥接包无法在Laravel 9上安装。

10 浏览
0 Comments

PuPHPeteer php桥接包无法在Laravel 9上安装。

这个包nesk/puphpeteer已经被存档,不再适用于Laravel 9。然而,我相信有一些分支会适用于Laravel 9,因为这些分支中composer错误的依赖已经更新。我在composer文档中尝试了这些步骤,但是似乎无法将一个分支安装为composer依赖项。如有指导,请不吝赐教。

在我的composer.json中,我有以下新条目。

{

"repositories": [

{

"type": "vcs",

"url": "https://github.com/NigelCunningham/puphpeteer.git"

}

],

"require": {

"nesk/puphpeteer": "dev-dev"

}

}

当我运行composer update时,出现以下错误:

"Your requirements could not be resolved to an installable set of packages. 
Problem 1
    - Root composer.json requires nesk/puphpeteer dev-dev -> satisfiable by nesk/puphpeteer[dev-dev]."

0
0 Comments

在编写本文时,PuPHPeteer PHP桥接包(https://github.com/NigelCunningham/puphpeteer.git)尚未准备好适用于Laravel 9。

尝试在Laravel 9.0.0的第一个稳定版本上安装它(composer create-project laravel/laravel example-app 9.0.0)。

composer.json(新条目)

{

"repositories": [

{

"url": "https://github.com/NigelCunningham/puphpeteer.git",

"type": "git"

}

],

"require": {

"nigelcunningham/puphpeteer": "^2.0.0"

},

"minimum-stability": "dev"

}

它抛出了以下错误:composer update

Your requirements could not be resolved to an installable set of packages.

Problem 1

- symfony/process[v4.0.0-BETA1, ..., v4.4.10] require php ^7.1.3 -> your php version (8.1.6) does not satisfy that requirement.

- symfony/process[v5.0.0-BETA1, ..., v5.0.0-RC1] require php ^7.2.9 -> your php version (8.1.6) does not satisfy that requirement.

- symfony/process[v5.0.0, ..., v5.1.0-RC1] require php ^7.2.5 -> your php version (8.1.6) does not satisfy that requirement.

- Root composer.json requires laravel/framework ^9.0 -> satisfiable by laravel/framework[v9.0.0-beta.1, ..., 9.x-dev].

- Root composer.json requires nigelcunningham/puphpeteer ^2.0.0 -> satisfiable by nigelcunningham/puphpeteer[2.0.0].

- Conclusion: don't install symfony/console[v6.0.19] | install symfony/process[v5.4.19] (conflict analysis result)

- Conclusion: don't install symfony/console[v6.0.3] | install symfony/process[v5.4.19] (conflict analysis result)

- Conclusion: don't install nunomaduro/collision[v6.4.0] | install symfony/process[v5.4.19] (conflict analysis result)

- Conclusion: don't install symfony/process v5.4.19 (conflict analysis result)

- Conclusion: don't install symfony/console[v6.2.5] | install symfony/process[v5.4.19] (conflict analysis result)

- nigelcunningham/puphpeteer 2.0.0 requires nesk/rialto ^1.2.0 -> satisfiable by nesk/rialto[1.2.0, 1.2.1, 1.3.0, 1.4.0].

- nesk/rialto 1.4.0 requires symfony/process ^3.3|^4.0|^5.0 -> satisfiable by symfony/process[v3.3.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev, v5.0.0-BETA1, ..., 5.4.x-dev].

- nesk/rialto[1.2.0, ..., 1.3.0] require symfony/process ^3.3|^4.0 -> satisfiable by symfony/process[v3.3.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev].

- symfony/console 6.3.x-dev conflicts with symfony/process v5.3.14.

- symfony/console 6.3.x-dev conflicts with symfony/process v5.3.2.

- symfony/console 6.3.x-dev conflicts with symfony/process v5.0.11.

- symfony/console 6.3.x-dev conflicts with symfony/process v4.4.44.

- symfony/console 6.3.x-dev conflicts with symfony/process v4.4.26.

- symfony/console 6.3.x-dev conflicts with symfony/process v3.4.47.

- symfony/console 6.3.x-dev conflicts with symfony/process v3.3.6.

- nunomaduro/collision[v6.1.0, ..., v6.2.1] require symfony/console ^6.0.2 -> satisfiable by symfony/console[v6.0.2, ..., 6.3.x-dev].

- Root composer.json requires nunomaduro/collision ^6.1 -> satisfiable by nunomaduro/collision[v6.1.0, ..., v6.x-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

如果你将注意力集中在下面的这一行上:

- nigelcunningham/puphpeteer 2.0.0 requires nesk/rialto ^1.2.0 -> satisfiable by nesk/rialto[1.2.0, 1.2.1, 1.3.0, 1.4.0]。

包`nigelcunningham/puphpeteer`需要依赖关系`nesk/rialto`,而最新版本的`nesk/rialto`需要`symfony/process: ^3.3|^4.0|^5.0`。不幸的是,Laravel v9.0.0需要`symfony/process: ^6.0`,这导致不兼容。

在你的问题中,你在`composer.json`文件中声明了一个所需的依赖关系`nesk/puphpeteer`。它与上述Laravel v9.0.0的不兼容问题相同。

它抛出了以下错误:composer update

- nesk/puphpeteer dev-dev requires nesk/rialto ^1.2.0 -> satisfiable by nesk/rialto[1.2.0, 1.2.1, 1.3.0, 1.4.0]。
- nesk/rialto 1.4.0 requires symfony/process ^3.3|^4.0|^5.0 -> satisfiable by symfony/process[v3.3.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev, v5.0.0-BETA1, ..., 5.4.x-dev]。

补充说明:

评论者(dfeva)的评论:

Thanks for the great answer! it looks like this nesk/rialto fork is updated to symphony/process ^6.0. github.com/zoonru/rialto/blob/zoon/composer.json. How can I install that first so then I should be able to install github.com/zoonru/puphpeteer if im understating correctly. Thanks for your help!

为了实现这一点,你可以使用以下方法:

composer.json(新条目)

{

"repositories": [

{

"url": "https://github.com/zoonru/rialto.git",

"type": "git"

},

{

"url": "https://github.com/zoonru/puphpeteer.git",

"type": "git"

}

],

"require": {

"nesk/puphpeteer": "dev-master"

},

"minimum-stability": "dev"

}

不幸的是,编写本文时,最新的git标签(2020年4月12日发布的Version 1.4.0)对`zoonru/rialto`依赖项依赖于旧版本的`"symfony/process": "^3.3|^4.0|^5.0"`。在2022年8月16日后,进行了支持新Symfony组件的更改(`"symfony/process": "^3.3 || ^4.0 || ^5.0 || ^6.0"`)。遗憾的是,尚未正式发布反映这些更改的新的git标签。

临时解决方法(请谨慎使用):

如果你仍然坚持要安装`zoonru/puphpeteer`,你可能需要fork`https://github.com/zoonru/rialto`并创建一个反映仓库中进行的新更改的新git标签。

步骤:

1. Fork `zoonru/rialto`仓库。阅读[Forking a repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository)。

2. 克隆你fork的版本的仓库。阅读[Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository#cloning-a-repository)。

3. 在你fork的版本的仓库根目录中打开终端。运行命令`git tag 1.5.0 -a`创建一个新的git标签(包含一个描述,例如`Version 1.5.0`)。使用命令`git push origin --tags`将新的git标签推送到你的远程forked仓库。

4. 现在,你应该能够在你的远程forked仓库上看到最新的git标签,例如`https://github.com/YOUR-GITHUB-USERNAME-HERE/rialto/tags`。

5. 现在,在你的Laravel项目的`composer.json`文件中,使用你新forked的远程仓库版本,而不是`https://github.com/zoonru/rialto.git`。

6. 在Laravel项目的根目录中打开终端,运行`composer update`命令,这将安装`zoonru/puphpeteer`。

希望你记得在Laravel项目的`composer.json`文件中用原始的`https://github.com/zoonru/rialto.git`仓库URL替换你forked的仓库URL,并在`zoonru/rialto`发布新的官方git标签时重新安装`zoonru/puphpeteer`。

感谢你的回答!它在Laravel 9上起作用了。`psr/log`从3.0.0降级到了1.1.4,我将看看在框架中是否会有什么麻烦。除了将新的Chromium驱动程序版本路径指向以及安装这些依赖项之外,一切都工作正常!非常感谢!

你很欢迎!我很高兴能帮助到你。谢谢你与我们分享你的发现。

0
0 Comments

作为一个正在写作的人,我发现PuPHPeteer PHP桥包在Laravel 9上安装不成功。经过我的研究,我发现了问题的原因和解决方法。

问题的原因是PuPHPeteer PHP桥包在Laravel 9上无法成功安装。具体原因可能是由于PuPHPeteer的兼容性问题,导致无法在Laravel 9上正常运行。

解决方法是使用spatie/browsershot作为替代方案。spatie/browsershot是一个很好的解决方案,它支持Laravel 10,并且无需对代码进行任何更改即可正常运行。它可以完成nesk/puphpeteer所能做的事情,并且有一个活跃的社区支持。

对于遇到类似问题的开发者来说,我建议尝试使用spatie/browsershot作为替代方案。下面是一个简单的示例代码,展示了如何在Laravel中使用spatie/browsershot:

use Spatie\Browsershot\Browsershot;
Browsershot::url('https://example.com')
    ->save('example.png');

以上就是PuPHPeteer PHP桥包无法在Laravel 9上安装的原因和解决方法。希望这篇文章对遇到类似问题的开发者有所帮助。

0
0 Comments

PuPHPeteer php bridge package unable to install on Laravel 9的问题出现的原因是原始的Puppeteer库不再维护,现在需要依赖于分支来在最新的Laravel项目中使用它。

解决方法是使用Panther替代PuPHPeteer。Panther是一个可以用来替代PuPHPeteer的工具,可以在Laravel项目中使用。你可以在以下链接中找到Panther的相关信息和文档:

https://github.com/symfony/panther

0