gpt4 book ai didi

Laravel 5.8 - 从 5.7 更新到 5.8 后无法解析服务容器中的实例

转载 作者:行者123 更新时间:2023-12-02 17:15:29 25 4
gpt4 key购买 nike

  • Laravel 版本:5.8.11
  • PHP 版本:7.1.26 (Homestead) - 但也使用 7.2 进行了测试,结果相同

自从从 5.7 更新到 5.8 以来,我无法再解析实例。它返回一个字符串,我得到尝试获取非对象的属性

重现步骤:

我将实例绑定(bind)在中间件中:

$globals = new Globals();
app()->instance('App\Helpers\Globals', $globals);
$globals->brows_browser = Agent::browser();

当稍后尝试解决它时(例如在 web.php 中):

$browser = resolve('App\Helpers\Globals')->brows_browser;

我收到错误异常尝试获取非对象的属性。 $browser 是一个字符串“Helpers\Globals”,而不是一个对象。之前在所有 Laravel 版本中都运行良好。

namespace App\Helpers;

class Globals
{
public $brows_browser;
public $brows_device;
public $brows_platform;
public $brows_version;
}

我还尝试在路由(web.php)中绑定(bind)实例,它产生了相同的结果。

当我查看resolve('App\Helpers\Globals')时,它是一个字符串“App\Helpers\Globals”,而不是一个对象。

有人有什么想法吗?这可能是 L5.8 中的错误吗?

谢谢

更新:

这不是一个错误。我已经使用 Composer 安装了 goetas-webservices/xsd2php-runtime ,这导致了问题。我真的不知道为什么以及该怎么办。

这些是已安装的依赖项。我有点陷入困境,因为我需要那个包:

Package operations: 17 installs, 0 updates, 0 removals
- Installing jms/metadata (2.0.0): Loading from cache
- Installing hoa/exception (1.17.01.16): Loading from cache
- Installing hoa/event (1.17.01.13): Loading from cache
- Installing hoa/consistency (1.17.05.02): Loading from cache
- Installing hoa/zformat (1.17.01.10): Loading from cache
- Installing hoa/protocol (1.17.01.14): Loading from cache
- Installing hoa/iterator (2.17.01.10): Loading from cache
- Installing hoa/visitor (2.17.01.16): Loading from cache
- Installing hoa/ustring (4.17.01.16): Loading from cache
- Installing hoa/compiler (3.17.08.08): Loading from cache
- Installing hoa/regex (1.17.01.13): Loading from cache
- Installing hoa/math (1.17.05.16): Loading from cache
- Installing hoa/stream (1.17.02.21): Loading from cache
- Installing hoa/file (1.17.07.11): Loading from cache
- Installing doctrine/annotations (v1.6.1): Loading from cache
- Installing jms/serializer (2.2.0): Loading from cache
- Installing goetas-webservices/xsd2php-runtime (v0.2.9): Loading from cache
jms/serializer suggests installing doctrine/collections (Required if you like to use doctrine collection types as ArrayCollection.)
Writing lock file

更新2:

我进一步深入研究,似乎 hoa/compiler(特别是 hoa/stream)与 Laravel 5.8 不兼容

hoa/compiler 是 jms/serializer 的依赖项。

这真的很糟糕,因为 jms/serializer 对我们来说是不可替代的!

最佳答案

这不是 Laravel 错误,而是与 hoa/编译器(特别是 hoa/stream)不兼容。

hoa/compiler 是 jms/serializer 的依赖项。

所以目前 jms/serializer 无法与 Laravel 5.8 配合良好

关于Laravel 5.8 - 从 5.7 更新到 5.8 后无法解析服务容器中的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55651969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com