Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' 未找到 Laravel 护照
Posted
技术标签:
【中文标题】Symfony\\Bridge\\PsrHttpMessage\\Factory\\DiactorosFactory\' 未找到 Laravel 护照【英文标题】:Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' not found Laravel passportSymfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' 未找到 Laravel 护照 【发布时间】:2020-07-18 11:22:21 【问题描述】:大家好,我正在使用 sfelix-martins/passport-multiauth 基于 laravel 护照
我收到此错误message: "Class 'Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' not found",…
message: "Class 'Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' not found"
exception: "Error"
file: "/app/vendor/smartins/passport-multiauth/src/Facades/ServerRequest.php"
line: 17
trace: [,…]
这是我的作曲家
"require":
"php": "^7.2.5",
"fideloper/proxy": "^4.2",
"fruitcake/laravel-cors": "^1.0",
"guzzlehttp/guzzle": "^6.5",
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^2.0",
"smartins/passport-multiauth": "^6.0",
"symfony/psr-http-message-bridge": "^2.0"
,
注意:当我将这个文件 (DiactorosFactory.php) 放在我旧的 laravel 项目的目录中时 效果很好。
【问题讨论】:
遇到同样的问题 【参考方案1】:如您在 Readme.md 中所见:https://github.com/symfony/psr-http-message-bridge/blob/26068fa40d91305529cb168997c0b528bb6eef07/CHANGELOG.md
使用 DiactorosFactory 已被弃用,并在 2.0.0 版中被移除
Deprecated DiactorosFactory, use PsrHttpFactory instead
您将在此处找到如何在您的代码中替换它的解决方案: https://github.com/sfelix-martins/passport-multiauth/pull/123/files#diff-b37981c79b4592847e664547ec085670454b57df4d701cd6218930b55169930fR17-R24
你可以在这里找到如何使用新东西的官方文档: https://symfony.com/doc/current/components/psr7.html#usage
【讨论】:
这些链接将来可能会损坏。您还可以在答案中添加必要的信息吗?【参考方案2】:看起来该软件包在其下一个版本 (7.0) 中解决了该问题。如果您升级到最新版本,这将解决您的问题。
如果您无法升级该软件包,那么您的另一个选择是将symfony/psr-http-message-bridge
降级到版本^2.0
。这也会将laravel/passport
降级到版本 8.4.0。
【讨论】:
以上是关于Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' 未找到 Laravel 护照的主要内容,如果未能解决你的问题,请参考以下文章