현재 위치: > 최신 기사 목록> php의 인터페이스 메커니즘을 이해하려면 get_declared_interfaces를 사용하십시오

php의 인터페이스 메커니즘을 이해하려면 get_declared_interfaces를 사용하십시오

gitbox 2025-05-28

PHP에서 인터페이스는 클래스가 구현 해야하는 메소드 서명을 정의하는 구조입니다. 코드를 정규화하고 해체하며 코드의 유지 관리 가능성과 확장 성을 향상시키는 데 도움이됩니다. 대규모 프로젝트에서 인터페이스를 사용하면 현재 코드 환경에 어떤 인터페이스가 있는지 빠르게 이해하는 방법이 일반적인 문제입니다. 다행스럽게도 PHP는 매우 편리한 내장 기능 인 get_declared_interfaces ()를 제공하므로 선언 된 모든 인터페이스를 쉽게 볼 수 있습니다.

인터페이스 란 무엇입니까?

인터페이스는 메소드 세트를 정의하지만 특정 메소드 구현을 포함하지 않는 PHP 언어의 추상 유형입니다. 인터페이스를 구현하는 클래스는 인터페이스에서 선언 된 모든 메소드를 구현해야합니다. 이 메커니즘을 사용하면 다른 클래스가 동일한 인터페이스 사양을 따를 수 있도록하여 동일한 방법 구조를 보장합니다.

 <?php
interface LoggerInterface {
    public function log(string $message);
}

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        echo "Logging message to a file: $message";
    }
}
?>

get_declared_interfaces () 함수 소개

get_declared_interfaces ()는 현재 선언 된 모든 인터페이스 이름 목록을 반환하는 내장 함수입니다. 매개 변수가 필요하지 않으며 모든 인터페이스의 이름이 포함 된 배열을 반환합니다.

이 기능은 디버깅, 자동 문서 생성 또는 코드 구조를 동적으로 분석하는 데 매우 적합합니다.

get_declared_interfaces ()를 사용하는 방법?

다음은 get_declared_interfaces ()를 사용하여 현재 환경에서 모든 인터페이스의 이름을 얻는 방법을 보여주는 간단한 예입니다.

 <?php
// 인터페이스를 선언하십시오
interface SampleInterface {
    public function sampleMethod();
}

// 선언 된 모든 인터페이스를 가져옵니다
$interfaces = get_declared_interfaces();

echo "현재 선언 된 인터페이스는 있습니다:\n";
print_r($interfaces);
?>

위 코드를 실행하면 SampleInterface 및 PHP 내장 인터페이스 목록이 출력됩니다.

반사와 함께 인터페이스 세부 사항을 봅니다

인터페이스의 메소드를 더 보려면 PHP의 반사 메커니즘과 함께 ReflectionClass 클래스를 사용할 수 있습니다.

 <?php
interface ExampleInterface {
    public function foo();
    public function bar($param);
}

$interfaces = get_declared_interfaces();

foreach ($interfaces as $interface) {
    if ($interface === 'ExampleInterface') {
        $reflection = new ReflectionClass($interface);
        echo "인터페이스 $interface 방법은입니다:\n";
        foreach ($reflection->getMethods() as $method) {
            echo "- " . $method->getName() . "\n";
        }
    }
}
?>

위의 코드는 exampleinterface 에서 정의 된 모든 메소드 이름을 출력합니다.

실질적인 의미

get_declared_interfaces ()를 사용하면 런타임에서 인터페이스 목록을 동적으로 가져 오면 프로그램의 인터페이스 정의를 이해하여 디버그하고 유지 관리하기가 더 쉬워집니다. 특히 대규모 프로젝트에서 많은 인터페이스가있을 때이 기능은 인터페이스 정보를 빠르게 요약하고 수동 검색을 위해 많은 시간을 절약 할 수 있습니다.