- Laravel Версия: 5.8.11
- Версия PHP: 7.1.26 (Homestead) - но также протестирована с 7.2 с тем же результатом
С момента обновления с 5.7 до5.8, я не могу разрешить экземпляр больше.Он возвращает строку, и я получаю Trying to get property of non-object
.
Шаги для воспроизведения:
Я связываю экземпляр в Middleware с:
$globals = new Globals();
app()->instance('App\Helpers\Globals', $globals);
$globals->brows_browser = Agent::browser();
при попытке разрешить егопозже (например, в web.php) с:
$browser = resolve('App\Helpers\Globals')->brows_browser;
Я получаю исключение ошибки Trying to get property of non-object
.$ browser - это строка «Helpers \ Globals», а не объект.Раньше все работало нормально во всех версиях Laravel.
namespace App\Helpers;
class Globals
{
public $brows_browser;
public $brows_device;
public $brows_platform;
public $brows_version;
}
Я также пытался привязать экземпляр к маршруту (web.php), и он дал тот же результат.
Когда я смотрю наresolve('App\Helpers\Globals')
, это строка "App \ Helpers \ Globals", а не объект.
Кто-нибудь есть идеи?Может ли это быть ошибкой в L5.8?
спасибо
ОБНОВЛЕНИЕ:
Это не ошибка.У меня 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 для нас незаменим!