Zend 프레임 워크-애플리케이션 구조

이 장에서는 Zend Framework 애플리케이션의 구조를 이해하겠습니다. 의 구조myapp 응용 프로그램은 다음과 같습니다-

├── composer.json 
├── composer.lock 
├── CONDUCT.md 
├── config 
│   ├── application.config.php 
│   ├── autoload 
│   │   ├── development.local.php 
│   │   ├── development.local.php.dist 
│   │   ├── global.php 
│   │   ├── local.php.dist 
│   │   ├── README.md 
│   │   └── zend-developer-tools.local-development.php 
│   ├── development.config.php 
│   ├── development.config.php.dist 
│   └── modules.config.php 
├── CONTRIBUTING.md 
├── data 
│   └── cache 
│       └── module-classmap-cache.application.module.cache.php ├── docker-compose.yml 
├── Dockerfile 
├── LICENSE.md 
├── module 
│   └── Application 
│       ├── config 
│       ├── src 
│       ├── test 
│       └── view 
├── phpcs.xml 
├── phpunit.xml.dist 
├── public
│   ├── css 
│   │   ├── bootstrap.css 
│   │   ├── bootstrap.css.map 
│   │   ├── bootstrap.min.css 
│   │   ├── bootstrap.min.css.map 
│   │   ├── bootstrap-theme.css 
│   │   ├── bootstrap-theme.css.map 
│   │   ├── bootstrap-theme.min.css 
│   │   ├── bootstrap-theme.min.css.map 
│   │   └── style.css 
│   ├── fonts 
│   │   ├── glyphicons-halflings-regular.eot 
│   │   ├── glyphicons-halflings-regular.svg 
│   │   ├── glyphicons-halflings-regular.ttf 
│   │   ├── glyphicons-halflings-regular.woff 
│   │   └── glyphicons-halflings-regular.woff2 
│   ├── img 
│   │   ├── favicon.ico 
│   │   └── zf-logo-mark.svg 
│   ├── index.php 
│   ├── js 
│   │   ├── bootstrap.js 
│   │   ├── bootstrap.min.js 
│   │   └── jquery-3.1.0.min.js 
│   └── web.config 
├── README.md 
├── TODO.md 
├── Vagrantfile 
└── vendor     
├── autoload.php     
├── bin     
│   ├── phpunit -> ../phpunit/phpunit/phpunit     
│   ├── templatemap_generator.php -> ../zendframework/zend-
view/bin/templatemap_generator.php
│   └── zf-development-mode -> ../zfcampus/zf-development-mode/bin/zf-
development-mode 
├── composer     
│   ├── autoload_classmap.php     
│   ├── autoload_namespaces.php     
│   ├── autoload_psr4.php     
│   ├── autoload_real.php     
│   ├── ClassLoader.php     
│   ├── installed.json 
│   └── LICENSE     
├── container-interop 
│   └── container-interop     
├── doctrine 
│   └── instantiator     
├── myclabs 
│   └── deep-copy     
├── phpdocumentor     
│   ├── reflection-common     
│   ├── reflection-docblock 
│   └── type-resolver     
├── phpspec 
│   └── prophecy     
├── phpunit     
│   ├── php-code-coverage     
│   ├── php-file-iterator     
│   ├── php-text-template     
│   ├── php-timer     
│   ├── php-token-stream     
│   ├── phpunit 
│   └── phpunit-mock-objects     
├── sebastian     
│   ├── code-unit-reverse-lookup     
│   ├── comparator     
│   ├── diff     
│   ├── environment     
│   ├── exporter     
│   ├── global-state     
│   ├── object-enumerator
│   ├── recursion-context     
│   ├── resource-operations 
│   └── version     
├── symfony 
│   └── yaml     
├── webmozart 
│   └── assert     
├── zendframework     
│   ├── zend-component-installer     
│   ├── zend-config     
│   ├── zend-console     
│   ├── zend-dom     
│   ├── zend-escaper     
│   ├── zend-eventmanager     
│   ├── zend-http     
│   ├── zend-loader     
│   ├── zend-modulemanager     
│   ├── zend-mvc     
│   ├── zend-router     
│   ├── zend-servicemanager     
│   ├── zend-stdlib     
│   ├── zend-test     
│   ├── zend-uri     
│   ├── zend-validator 
│   └── zend-view 
└── zfcampus 
└── zf-development-mode  

73 directories, 55 files

Zend Framework 애플리케이션은 서로 다른 폴더로 구성됩니다. 그들은 다음과 같습니다-

  • Application−이 디렉토리에는 응용 프로그램이 포함되어 있습니다. MVC 시스템은 물론 구성, 사용 된 서비스 및 부트 스트랩 파일을 수용합니다.

  • Config −이 디렉토리에는 응용 프로그램의 구성 파일이 포함되어 있습니다.

  • Data −이 디렉토리는 일시적이고 일시적 일 수있는 애플리케이션 데이터를 저장할 장소를 제공합니다.

  • Module − 모듈을 통해 개발자는 관련 컨트롤러 세트를 논리적으로 구성된 그룹으로 그룹화 할 수 있습니다.

  • Public− 이것은 응용 프로그램의 문서 루트입니다. Zend 응용 프로그램을 시작합니다. 또한 JavaScript, CSS, 이미지 등과 같은 애플리케이션의 자산도 포함됩니다.

  • Vendor −이 디렉토리는 작곡가 종속성을 포함합니다.

애플리케이션 모듈의 구조

이것은 애플리케이션의 기본 디렉토리입니다. Zend Framework 2는 강력하고 유연한 모듈 시스템을 도입하여 애플리케이션을 효율적으로 구성합니다. 그만큼Application스켈레톤 애플리케이션 (myapp) 의 모듈은 전체 애플리케이션에 대한 부트 스트랩, 오류 및 라우팅 구성을 제공합니다. 의 구조Application 모듈은 다음과 같습니다-

├── module 
│   └── Application 
│       ├── config 
│       │   └── module.config.php 
│       ├── src 
│       │   ├── Controller 
│       │   │   └── IndexController.php 
│       │   └── Module.php 
│       ├── test 
│       │   └── Controller 
│       │       └── IndexControllerTest.php 
│       └── view 
│           ├── application 
│           │   └── index 
│           │       └── index.phtml 
│           ├── error 
│           │   ├── 404.phtml 
│           │   └── index.phtml 
│           └── layout 
│               └── layout.phtml

각 모듈 디렉토리를 자세히 다루겠습니다.

  • Application− 이것은 모듈의 루트 디렉토리입니다. 폴더 이름은 모듈 이름과 일치하며 이름은 모듈 내에 정의 된 모든 클래스의 PHP 네임 스페이스로도 사용됩니다. MVC 시스템은 물론 구성, 사용 된 서비스 및 부트 스트랩 파일을 수용합니다.

  • Config − 모듈의 독립적 구성.

  • Src − 애플리케이션의 주요 비즈니스 로직.

  • View− 디자인 / 프레젠테이션 (HTML) 파일이 포함되어 있습니다. 예를 들면 index.phtml입니다.

  • src/Module.php− 모듈의 핵심입니다. 모듈의 "전면 컨트롤러"로 작동합니다. 젠드 프로세스src/Module.php 이 모듈의 PHP 클래스를 처리하기 전에 파일.

  • Application/config/module.config.php − 라우터 설정 및 파일 자동 로딩을 위해 구현됩니다.

  • Application/view/layout− 레이아웃은 여러보기의 공통 부분을 나타냅니다. 예 : 페이지 머리글 및 바닥 글. 기본적으로 레이아웃은views/layoutsfolder.

모든 모듈은 위의 Application 모듈 과 동일하거나 유사한 구조를 공유합니다 .