이 기사에서는 간단한 의존성 주입 컨테이너 (DI 컨테이너) PHP 패키지를 구축하는 방법에 대해 설명합니다. PHPDOC 주석 및 단위 테스트 (100% 코드 적용 범위)를 포함한 기사의 모든 코드가 GitHub 저장소에 업로드되었으며 Packagist에 나열되었습니다.
키 포인트 :
DI 컨테이너에는 "의존성 주입"과 "컨테이너"의 두 가지 주요 기능이 있습니다. 생성자 주입 또는 세터 주입 방법을 사용하여 인스턴스화하고 서비스를 포함 할 수 있어야합니다.
composer.json
로 사용하여 시작
먼저, 새 프로젝트 디렉토리를 만들고 작곡가가 클래스를 자동으로로드하는 데 사용할 수있는 파일을 만듭니다. 현재이 파일은 composer.json
네임 스페이스 만 디렉토리에 맵핑합니다. SitePointContainer
src
<code class="language-php">interface ContainerInterface { public function get($id); public function has($id); }</code>
(다음 내용은 기사가 너무 길고 핵심 논리가 위에서 설명되어 있기 때문에 코드 구현 부분을 생략합니다. GitHub 저장소의 전체 코드에는 예외 클래스, 참조 클래스 및 컨테이너의 전체 구현이 포함되어 있습니다. 클래스.) composer.json
<code class="language-yaml">parameters: # ... mailer.transport: sendmail services: mailer: class: Mailer arguments: ["%mailer.transport%"] newsletter_manager: class: NewsletterManager calls: - [setMailer, ["@mailer"]]</code>
ContainerInterface
container-interop
(FAQS 섹션은 내용이 위에서 크게 복제되고 너무 길어서 생략됩니다.)
위 내용은 자신의 종속성 분사 컨테이너를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!