2016-08-12 1 views
0

現在、私たちはlaravelに基づいたプロジェクトを持っています。私たちのロジックはすべてxxxというlaravelの別のフォルダにあり、名前空間Aを使用します。次のように働きます。PHPネームスペースプロジェクトでオーバーライドコンセプトを実装する方法

xxxと同じレベルに別のフォルダyyyがあります。これはxxxと全く同じファイル構造になっています。

yayに同じファイルを作成すると、xxxにいくつかのクラスが実装されているファイルaaa.phpがある場合、そこでクラスをオーバーライドしたり、そこにメソッドを追加またはオーバーライドすることができます。同じクラス名を使用するには、例えばB

のように名前空間を使用する必要があります。したがって、名前空間Aまたは名前空間Bを使用するかどうかを指定する必要があります。ない。

PHPクラスを継承するときに、名前空間Bを強制することはできませんし、このための非継承された機能は、まだ名前空間A.当社のニーズに対応することができますオーバーライド何コンセプト

を使うのか?

+2

これはまさにlaravelの 'IoC'サービスコンテナが構築されたものです。 IoCにバインドされたアプリケーションのインスタンスを簡単に追加して、それを上書きすることができます。見てください[https://laravel.com/docs/5.2/providers](https://laravel.com/docs/5.2/providers)。 – Ohgodwhy

+0

情報提供いただきありがとうございます。サービスプロバイダーが私たちのケースでどのように役立つかを簡単な例でご紹介できますか? – ArmeniaH

答えて

0

デザインパターンを使用できます。 link link 2

+0

このメソッドはIDEには適していません。クラス参照は永遠に失われます。 – ArmeniaH

関連する問題