複数の子クラスによって拡張されたクラス認証を宣言したいと思います。PHP:子クラスのメソッドで認証クラスを拡張する
// Parent class that should be called
abstract class auth
{
// Force child classes to implement this method
abstract public function authUser($uid, $pw);
}
class configAuth1 extends auth
{
public function authUser($uid, $pw)
{
// Do some authentication stuff
return false;
}
}
class configAuth2 extends auth
{
public function authUser($uid, $pw)
{
// Do some authentication stuff
return true;
}
}
今、私は1つがtrueを返すまで親クラスを呼び出し、すべての子クラスメソッドauthUser()
を試してみたいと思います。
だから私はすべての子を手動でインスタンス化するのは意味がないと言っています。 どうすれば対応できますか?
UPDATE
現在、私はget_declared_classes()
とReflectionClass
でこれを解決します。これはより良い方法で解決可能ですか?
ありがとうございます。この場合、私はすべての子クラスのインスタンスを追加する必要があります - これは自動的に可能ではありませんか? – alve89
そのタスクは多くの方法で解決される可能性があります。選択した方法は、アプリケーションの設計によって異なります。たとえば、[Service Locator](https://en.wikipedia.org/wiki/Service_locator_pattern)と[Dependency Injection](https://en.wikipedia.org/wiki/Dependency_injection)を参照してください。また、インスタンスの自動作成とバインディングは、多くのライブラリやフレームワークによって提供される「自動配線」と呼ばれることがあります。 – Timurib