Zend-framework2 Noțiuni de bază cu zend-framework2

observații

Zend Framework 2 (ZF2) este un cadru PHP modern și flexibil, care ajută dezvoltatorii web pentru a construi aplicatii web de diferite complexități. Sponsorul major al companiei Zend Framework este Zend Technologies, ceea ce îl face foarte puternic și stabil. Există două îmbunătățiri majore ale acestei a doua versiuni peste ZF1. În primul rând, o arhitectură bazată pe module a fost adoptată în mod implicit fără nicio modificare. Acest lucru vine la îndemână atunci când dezvoltarea unei aplicații web de dimensiuni mari, care necesită o descompunere a modulelor. În al doilea rând, ZF2 implementează toate caracteristicile PHP5.3+ poate oferi în special spațiile de nume. În versiunile anterioare, o clasă de controler este denumită după cum urmează:

class IndexController extends Zend_Controller_Action{}

aceeași clasă este rescrisă în ZF2 după cum urmează:

namespace Application\Controller;use Zend\Mvc\Controller\AbstractActionController;class IndexController extends AbstractActionController{}

următoarele sunt câteva alte caracteristici interesante ale ZF2:

  • injecție dependență
  • EventManager
  • ServiceManager

un simplu Hello World

în linia de comandă, intrați în directorul în care doriți să creați proiectul, apoi tastați: composer create-project zendframework/skeleton-application helloWorldTest. În timpul instalării, veți fi întrebat dacă doriți o instalare minimă: să spunem da pentru moment, doar testăm.

de dragul simplității, vom folosi serverul PHP CLI încorporat. Din linia de comandă, intrați în directorul rădăcină al proiectului dvs. (helloWorldTest ), apoi rulați : php -S 0.0.0.0:8080 -t public/ public/index.php . Acum, deschideți browserul web și accesați http://localhost/, ar trebui să vedeți pagina de întâmpinare a aplicației ZF2 Skeleton.

dacă faceți acest lucru, vom configura acum o nouă pagină. În module/Application/config/module.config.php puteți vedea că o rută dinamică este deja configurată pentru subfolderul aplicației:

return , 'application' => ', 'defaults' => , ], ], ], ], 

setați o nouă acțiune „helloWorldAction() ” în module/Applicaiton/src/Controller/IndexController.php :

class IndexController extends AbstractActionController{ public function indexAction() { ... } public function helloWorldAction() { return new ViewModel(); }} 

în cele din urmă, creați fișierul de vizualizare module/Application/view/application/index/hello-world.phtml cu următorul conținut:

<?phpecho "Hello World !"; 

acum, du-te la http://localhost/application/hello-world, și spune salut la ZF2 !

cum se creează o fabrică

când o clasă trebuie să fie prevăzută cu dependențe dure cea mai bună practică este de a utiliza un model de injecție constructor în cazul în care aceste dependențe sunt injectate folosind o fabrică.

să presupunem că MyClass este greu dependent de o valoare $dependency care trebuie rezolvată din config aplicație.

<?phpnamespace Application\Folder;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClass{ protected $dependency; public function __construct($dependency) { $this->dependency = $dependency; }} 

pentru a injecta această dependență este creată o clasă de fabrică. Această fabrică va rezolva dependența de configurare și va injecta valoarea de configurare la construcția clasei și va returna rezultatul:

<?phpnamespace Application\Factory;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClassFactory implements FactoryInterface{ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $servicelocator->get('Config'); $dependency = $config; $myClass = new MyClass($dependency); return $myClass; }} 

acum că a fost creată clasa factory, aceasta trebuie înregistrată în configurația service manager în fișierul de configurare a modulului module.config.php sub fabricile cheie. Este o practică bună să folosiți aceleași nume atât pentru clasă, cât și pentru fabrică, astfel încât este ușor să le găsiți în arborele folderului proiectului:

<?phpnamespace Application;return array( //... 'service_manager' => ], //...); 

alternativ, constantele de nume de clasă pot fi utilizate pentru a le înregistra:

<?phpnamespace Application;use Application\Folder\MyClass;use Application\Factory\MyClassFactory;return array( //... 'service_manager' => ], //...); 

acum, clasa poate fi colectată la managerul de service folosind cheia pe care am folosit-o la înregistrarea fabricii pentru acea clasă:

 $serviceManager->get('Application\Folder\MyClass'); 

sau

 $serviceManager->get(MyClass::class); 

managerul de servicii va găsi, colecta și rula fabrica și apoi returnează instanța de clasă cu dependența injectată.

instalare sau configurare

instrucțiuni detaliate privind instalarea sau instalarea Zend Framework 2. Există diferite modalități de instalare a cadrului. Mai jos sunt câteva dintre ele:

folosind Composer – mod recomandat

presupunând că composer este instalat pe caseta țintă.

pentru a instala o aplicație skeleton MVC, executați în terminalul dvs. pentru a crea un nou proiect Zend framework 2 în locația specificată:

php composer.phar create-project -sdev \ --repository-url="https://packages.zendframework.com" \ zendframework/skeleton-application path/to/install 

pentru a instala manual un ZF2 minim (Zend MVC + mână de dependențe), executați în linia de comandă:

composer require zendframework/zend-mvc 

sau pentru un ZF2 cu drepturi depline (+64 module):

composer require zendframework/zendframework` 

rețineți că prima opțiune rulează un program de instalare care vă va oferi o aplicație complet funcțională împreună cu structura obișnuită a directoarelor de aplicații. Alte opțiuni vă vor permite să construiți întreaga aplicație de la zero, deoarece oferă pur și simplu module ZF2 pe care să le construiți.

folosind submodule Git

rulați comanda de mai jos pentru a clona zf2 și este dependențe recursiv de la Github:

git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive 

HTTP Server Setup

o aplicație web tipică necesită rularea unui serviciu HTTP care ascultă un port dedicat (de obicei :80) pentru a transmite cererile primite către aplicație, a procesa și a servi ieșirea (răspunsul) înapoi.

notă: De asemenea, puteți scrie aplicații conștiente de consolă în Zend Framework 2 fără a fi nevoie de un server HTTP.

opțiunea 1 – PHP CLI Server

cel mai simplu mod de a începe dacă utilizați PHP 5.4 sau mai sus este de a porni intern PHP CLI-server în directorul rădăcină.

du-te la directorul de proiect și a alerga:

php -S 0.0.0.0:8080 -t public/ public/index.php`. 

aceasta va porni serverul CLI încorporat pe portul 8080 și îl va lega la toate interfețele de rețea.

opțiunea 2 – un server HTTP personalizat

configurați un virtualhost pe serverul Apache sau Microsoft IIS sau Nginx și treceți cererile HTTP primite către aplicație.

Lasă un răspuns

Adresa ta de email nu va fi publicată.