use*_*048 5 laravel laravel-5.6
laravel\framework\src\Illuminate\Container\Container.php 公共函数 getAlias($abstract) 抛出 ErrorException: 当 $abstract 中没有 $this->aliases[] 时, isset 中的非法偏移类型或为空
$this->aliases[$abstract] 为 null 并且 !isset($this->aliases[$abstract]) 抛出 ErrorException: Illegal offset type inisset or empty
$abstract 值是 Modules\Administration\Tests\Commands\StubJsonCommandHandler
运行 AdministrationControllerTest ( https://github.com/proyectotau/TAU/克隆 laraveldusk 分支 [4ef9b0e124657abed7afde0969f332bf7be95a8b])
这是一个错误还是我有任何错误?提前致谢!
getAlias() 函数的更改
! isset($this->aliases[$abstract])
为
! isset($this->aliases[(string)$abstract])
或者将类型提示显式更改为stringat ALL 函数(
还
@param string不够)
public function getAlias($abstract)public function getAlias(string $abstract)
isShared() at isset($this->instances[(string)$abstract]) isset($this->bindings[(string)$abstract]
resolve() calling to$this->resolved[(string)$abstract] = true;
getConcrete() at if (isset($this->bindings[(string)$abstract]))
getContextualConcrete() at if (empty($this->abstractAliases[(string)$abstract]))
getExtenders() at if (isset($this->extenders[(string)$abstract]))
但稍后在 Container:和 Illuminate\Foundation\Application 中
下次使用 [$abstract] 时会失败
:
make() at if (isset($this->deferredServices[(string)$abstract]) && ! isset($this->instances[(string)$abstract]))
PS:请查看 Alvaro Gonzalez 在 php 中的评论 - 如何修复此非法偏移类型错误