Учебники

Zend Framework — Структура приложения

В этой главе давайте разберемся со структурой приложения 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 состоит из разных папок. Они заключаются в следующем —

  • Приложение — этот каталог содержит ваше приложение. Он будет содержать систему MVC, а также конфигурации, используемые службы и файл начальной загрузки.

  • Config — этот каталог содержит файлы конфигурации приложения.

  • Данные — этот каталог предоставляет место для хранения данных приложения, которые являются нестабильными и, возможно, временными.

  • Модуль — Модули позволяют разработчику группировать набор связанных контроллеров в логически организованную группу.

  • Общедоступный — это корень документа приложения. Запускает приложение Zend. Он также содержит ресурсы приложения, такие как JavaScript, CSS, изображения и т. Д.

  • Поставщик — Этот каталог содержит зависимости композитора.

Приложение — этот каталог содержит ваше приложение. Он будет содержать систему MVC, а также конфигурации, используемые службы и файл начальной загрузки.

Config — этот каталог содержит файлы конфигурации приложения.

Данные — этот каталог предоставляет место для хранения данных приложения, которые являются нестабильными и, возможно, временными.

Модуль — Модули позволяют разработчику группировать набор связанных контроллеров в логически организованную группу.

Общедоступный — это корень документа приложения. Запускает приложение Zend. Он также содержит ресурсы приложения, такие как JavaScript, CSS, изображения и т. Д.

Поставщик — Этот каталог содержит зависимости композитора.

Структура прикладных модулей

Это основной каталог вашего приложения. Zend Framework 2 представляет мощную и гибкую модульную систему для эффективной организации приложения. Модуль Application скелетного приложения (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

Давайте рассмотрим каждый из этих каталогов модулей подробно —

  • Приложение — это корневой каталог модуля. Имя папки будет соответствовать имени модуля, а имя также используется в качестве пространства имен PHP для всех классов, определенных внутри модуля. Он будет содержать систему MVC, а также конфигурации, используемые службы и файл начальной загрузки.

  • Config — Независимая конфигурация модуля.

  • Src — основная бизнес-логика приложения.

  • Просмотр — содержит файлы дизайна / презентации (HTML). Например, index.phtml.

  • src / Module.php — это сердце модуля. Он работает как «фронт-контроллер» для модуля. Zend обрабатывает файл src / Module.php перед обработкой любых классов PHP в этом модуле.

  • Application / config / module.config.php — это реализовано для конфигурации маршрутизатора и автоматической загрузки файлов.

  • Приложение / представление / макет — макеты представляют общие части нескольких представлений. Например, верхний и нижний колонтитулы страницы. По умолчанию макеты должны храниться в папке views / layouts .

Приложение — это корневой каталог модуля. Имя папки будет соответствовать имени модуля, а имя также используется в качестве пространства имен PHP для всех классов, определенных внутри модуля. Он будет содержать систему MVC, а также конфигурации, используемые службы и файл начальной загрузки.

Config — Независимая конфигурация модуля.

Src — основная бизнес-логика приложения.

Просмотр — содержит файлы дизайна / презентации (HTML). Например, index.phtml.

src / Module.php — это сердце модуля. Он работает как «фронт-контроллер» для модуля. Zend обрабатывает файл src / Module.php перед обработкой любых классов PHP в этом модуле.

Application / config / module.config.php — это реализовано для конфигурации маршрутизатора и автоматической загрузки файлов.

Приложение / представление / макет — макеты представляют общие части нескольких представлений. Например, верхний и нижний колонтитулы страницы. По умолчанию макеты должны храниться в папке views / layouts .

Все модули имеют ту же или похожую структуру, как и у вышеупомянутого прикладного модуля.