私は形質があり、コントローラではtrait
が使用されています。このようにして、Controller
には多くの機能、trait
が使用されています。 Controller
はベースコントローラーを拡張しています。 Controller
とBaseController
にはすでにコンストラクタがあります。形質でのコンストラクタ依存性注入の回避
何らかの理由により、コンストラクタ依存性注入がtrait
に必要なので、私は形質のコンストラクタも必要とします。今、コンストラクタをtrait
に配置すると、コンストラクタは実行されません。
この問題を解決するために、私はこの場所にSendsPasswordResetEmails trait
を見ました\vendor\laravel\framework\src\Illuminate\Foundation\Auth\SendsPasswordResetEmails.php
。このtrait
にはbroker
という関数があり、契約を返します。このようにして、彼らはbroker
関数から契約を取得しているので、コンストラクター依存性注入は必要ありませんでした
私はすでに以下のようなServiceProvider
を持っています。
class RoleServiceProvider extends \Illuminate\Support\ServiceProvider {
public function register() {
$this->app->bind(
'App\Architecture\Contract\Role\IRole',
'\App\Architecture\Database\Role\RoleDb'
);
}
public function provides() {
return ['App\Architecture\Contract\Role\IRole'];
}
}
App\Architecture\Contract\Role\IRole
は契約です。 \App\Architecture\Database\Role\RoleDb
質問 Databaseクラスである:それはtrait
でコンストラクタ依存性注入を避けるためにSendsPasswordResetEmails trait
で行われていたようにあなたは親切に私は、このサービスに接続する方法を教えてもらえますがファサードを通じて提供されるものですか。