Zend Framework - 应用程序结构

  • 简述

    在本章中,让我们了解 Zend 框架应用程序的结构。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 框架应用程序由不同的文件夹组成。它们如下所示 −
    • Application − 此目录包含您的应用程序。它将容纳MVC系统,以及配置,使用的服务和引导程序文件。
    • Config − 此目录包含应用程序的配置文件。
    • Data − 此目录提供了一个存储易失性且可能是临时的应用程序数据的位置。
    • Module − 模块允许开发人员将一组相关控制器分组到一个逻辑上组织的组中。
    • Public − 这是应用程序的文档根目录。它将启动 Zend 应用程序。它还包含应用程序的资产,如脚本,CSS,图像等。
    • Vendor − 此目录包含作曲家依赖项。
  • 应用程序模块的结构

    这是应用程序的主目录。Zend Framework 2引入了一个功能强大且灵活的模块系统来高效地组织应用程序。骨架应用程序(myapp)的应用程序模块为整个应用程序提供引导、错误和路由配置。应用程序模块的结构如下所示−
    
    ├── 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) 文件。例如,索引。
    • src/Module.php − 它是模块的核心。它用作模块的“前端控制器”。Zend 处理 src/Module.php文件,然后再处理此模块中的任何 PHP 类。
    • Application/config/module.config.php − 它是为路由器配置和自动加载文件实现的。
    • Application/view/layout − 布局表示多个视图的公共部分。例如,页眉和页脚。默认情况下,布局应存储在view/layout文件夹中
    所有模块与上述Application模块共享相同或相似的结构。