패턴 패턴은 단일 통합 인터페이스를 제공하여 복잡한 객체 상호 작용을 단순화합니다. 이 튜토리얼은 Laravel의 Facade 구현을 다른 프레임 워크에 조정하여 IOC 컨테이너의 힘을 활용하는 방법을 보여줍니다.
이 안내서는 IOC 컨테이너에 대한 기본적인 친숙 함을 가정합니다. 우리는 Laravel의 Facade 메커니즘을 탐색 한 다음 다른 곳에서 복제하는 방법을 보여줍니다. .
주요 개념 :
Laravel Facades는 컨테이너 서비스에 대한 정적과 유사한 인터페이스를 제공하여 기본 구현을위한 프록시 역할을합니다. 코드 가독성을 향상시키고 복잡한 라이브러리 상호 작용을 단순화합니다
Core Laravel 클래스는 A 속성 (서비스 컨테이너에 대한 참조)과
마법 메소드를 사용하여 컨테이너 서비스에서 동적으로 해결하고 호출합니다.
Laravel 's 는 별칭을 관리하여 사용자 지정 이름을 통해 정면에 대한 액세스를 간소화합니다. 를 사용하여 PHP의 자동 로딩에 연결합니다
이를 다른 프레임 워크에 적용하려면 서비스 컨테이너를 만들고, 정적 인터페이스를 사용하여 정면 클래스를 구축하고, 별명 로더를 구현하는 것이 포함됩니다.
라벨은 세부적으로 외관 :
라벨 외관은 컨테이너 서비스에 정적과 유사한 인터페이스를 제공합니다. "Facade"라는 용어는 PHP 커뮤니티에서 설계 패턴에 대한 엄격한 준수에 관한 논쟁을 불러 일으켰지 만, 그 기능은 여전히 가치가 있습니다.
컨테이너에서 직접 서비스에 액세스하려면 가 포함됩니다. 외관은 이것을 -
각 서비스에는 Laravel의베이스 클래스를 확장하는 해당 외관이 있습니다. 중요한 메소드는 이며 서비스의 컨테이너 이름을 반환합니다.
- 의 마법은 실제 서비스 해상도 및 메소드 호출을 처리합니다.
라벨
Facade
클래스 :
$app
클래스는 컨테이너 참조 ()를 보유하고 를 구현합니다. 정적 메소드가 정면에서 호출되면 __callStatic
는 서비스를 검색하고 요청 된 메소드를 실행합니다. 이 서비스 검색에는 메소드가 사용됩니다. 의 단순화 된 버전은 다음과 같습니다
-
Facade 클래스 구조 :
AliasLoader
외관 클래스는베이스를 확장하고 spl_autoload_register
: 를 구현합니다.
라 라벨의 별칭 시스템 : - Laravel의 에는 배열 매핑 별명 이름이 완전히 적격 클래스 이름에 포함됩니다. 이 배열을 통해 반복되어 를 사용하여 별칭을 생성하기 위해 자동로드 함수를 등록합니다. 이를 통해 대신
config/app.php
와 같은 짧은 이름을 사용할 수 있습니다.
다른 프레임 워크에서 외관 구현 (예 : Silex) : 'aliases'
Silex (또는 다른 프레임 워크)에서 Laravel의 Facade 접근 방식을 사용하려면 다음을 수행하십시오.
AliasLoader
class_alias
Illuminate/Support : FancyName AppFacadesSomeServiceFacade
를 설치하십시오
정면 생성 : Laravel의베이스를 확장하고 .
정면 응용 프로그램 설정
aliasloader (또는 동등한) 구현 : 는 Laravel 's 를 사용하거나 별명을 처리하기 위해 유사한 클래스를 작성하십시오.
생성 : aliases를 정의하십시오
레지스터 별칭 : . 를 사용하여 별칭을 등록하십시오
위 내용은 Laravel Facades가 작동하는 방법과 다른 곳에서 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!