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