基本上,我想从 Laravel 命令中调用存储库 Repository.php 上的一个方法。
Example\Storage\Repository.php
Example\Storage\RepositoryInerface.php
Example\Storage\RepositoryServiceProvider.php
我希望在命令构造函数中设置接口,并将其设置为受保护的变量。
在服务提供者中,我将接口绑定到仓库类。
现在,在 start/artisan.php 中,我只是写入:
Artisan::add(new ExampleCommand(new Repository());
我能在这里使用一个接口吗?正确的方法是什么?我感到困惑。
提前感谢。
编辑:为了澄清,目前只有这种方式可行,但我不想在注册artisan命令时硬编码具体类。
Artisan::add(new ExampleCommand(new Repository());
更改为Artisan::add(new ExampleCommand(new RepositoryInterface());
。 - RenArtisan::add(App::make('\Example\Commands\ExampleCommand'));
,结果正如预期一样。我在哪里可以阅读更多相关信息呢?您能详细说明一下吗? :) - Renmake()
方法的一部分,因此任何代码都可以使用它,而不仅仅是 IoC 容器。 - alexrussell