여러 자식 클래스로 확장 된 클래스 인증을 선언하고 싶습니다.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;
}
}
지금은 부모 클래스를 호출하고 하나에 해당하는 반환 될 때까지 모든 하위 클래스 메서드를 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)에 대해 읽으십시오. 또한 인스턴스의 자동 생성 및 바인딩은 종종 "Autowiring"이라고하며이 기능은 많은 라이브러리 및 프레임 워크에서 제공됩니다. – Timurib