Zend Framework - Uygulama Yapısı

Bu bölümde, Zend Framework uygulamasının yapısını anlayalım. Yapısımyapp uygulama aşağıdaki gibidir -

├── 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 uygulaması farklı klasörlerden oluşur. Bunlar aşağıdaki gibidir -

  • Application- Bu dizin uygulamanızı içerir. MVC sisteminin yanı sıra yapılandırmaları, kullanılan hizmetleri ve önyükleme dosyanızı barındıracaktır.

  • Config - Bu dizin, bir uygulamanın yapılandırma dosyalarını içerir.

  • Data - Bu dizin, geçici ve muhtemelen geçici olan uygulama verilerini depolamak için bir yer sağlar.

  • Module - Modüller, geliştiricinin bir dizi ilgili denetleyiciyi mantıksal olarak organize edilmiş bir grupta gruplamasına izin verir.

  • Public- Bu, uygulamanın belge köküdür. Zend uygulamasını başlatır. Aynı zamanda JavaScript, CSS, Görseller vb.

  • Vendor - Bu dizin, besteci bağımlılıklarını içerir.

Uygulama Modüllerinin Yapısı

Bu, uygulamanızın ana dizinidir. Zend Framework 2, uygulamayı verimli bir şekilde organize etmek için güçlü ve esnek bir modül sistemi sunar. Applicationiskelet uygulamasının modülü (myapp) tüm uygulamaya önyükleme, hata ve yönlendirme yapılandırması sağlar. YapısıApplication modül aşağıda gösterildiği gibidir -

├── 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

Bu modül dizinlerinin her birini ayrıntılı olarak ele alalım -

  • Application- Bu, modülün kök dizinidir. Klasörün adı, modülün adıyla eşleşecek ve adı, modül içinde tanımlanan tüm sınıfların PHP ad alanı olarak da kullanılacaktır. MVC sistemini, yapılandırmaları, kullanılan hizmetleri ve önyükleme dosyanızı barındıracaktır.

  • Config - Modülün bağımsız konfigürasyonu.

  • Src - Uygulamanın ana iş mantığı.

  • View- Tasarım / sunum (HTML) dosyalarını içerir. Örneğin, index.phtml.

  • src/Module.php- Modülün kalbidir. Modül için bir "ön denetleyici" olarak çalışır. Zend sürecisrc/Module.php bu modüldeki herhangi bir PHP Sınıfını işlemeden önce.

  • Application/config/module.config.php - Yönlendirici yapılandırması ve otomatik yükleme dosyaları için uygulanır.

  • Application/view/layout- Düzenler, birden çok görünümün ortak parçalarını temsil eder. Örneğin, sayfa üst bilgisi ve altbilgi. Varsayılan olarak, düzenler şurada saklanmalıdır:views/layoutsfolder.

Tüm modüller, yukarıdaki Uygulama modülüyle aynı veya benzer yapıyı paylaşır .