zend-framework2 első lépések a zend-framework2

Megjegyzések

a Zend Framework 2 (ZF2) egy modern és rugalmas PHP keretrendszer, amely segít a webfejlesztőknek a különböző bonyolultságú webes alkalmazások felépítésében. A Zend Framework cég fő szponzora a Zend Technologies, ami nagyon erős és stabil. Ennek a második verziónak két fő javulása van a ZF1-hez képest. Először is, a modul-alapú architektúra került elfogadásra alapértelmezés nélkül csípés. Ez jól jön, ha fejlesztése egy nagy méretű webes alkalmazás, amely megköveteli a bomlás modulok. Másodszor, a ZF2 megvalósítja az összes olyan funkciót, amelyet a PHP5.3 + kínál, különösen a névtereket. A korábbi verziókban a vezérlőosztályt a következőképpen nevezik meg:

class IndexController extends Zend_Controller_Action{}

ugyanezt az osztályt a következőképpen írják át a ZF2-ben:

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

az alábbiakban bemutatjuk a ZF2 néhány izgalmas funkcióját:

  • Dependency Injection
  • EventManager
  • ServiceManager

egy egyszerű Hello World

a parancssorban lépjen be a könyvtárba, amelyben létre szeretné hozni a projektet, majd írja be: composer create-project zendframework/skeleton-application helloWorldTest. A telepítés során a rendszer megkérdezi, hogy szeretne-e minimális telepítést: mondjuk, hogy egyelőre igen, csak tesztelünk.

az egyszerűség kedvéért a beépített PHP CLI szervert fogjuk használni. A parancssorból lépjen be a projekt gyökérkönyvtárába (helloWorldTest ), majd futtassa : php -S 0.0.0.0:8080 -t public/ public/index.php . Most nyissa meg a webböngészőt, és menjen a http://localhost/ oldalra, látnia kell a zf2 Skeleton alkalmazás üdvözlő oldalát.

ha így tesz, akkor most új oldalt állítunk be. A module/Application/config/module.config.php – ben látható, hogy egy dinamikus útvonal már be van állítva az alkalmazás almappájához:

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

Új művelet beállítása “helloWorldAction() ” ban ben module/Applicaiton/src/Controller/IndexController.php :

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

végül hozza létre a module/Application/view/application/index/hello-world.phtml nézetfájlt a következő tartalommal:

<?phpecho "Hello World !"; 

most menj a http://localhost/application / hello-world oldalra, és köszönj a ZF2-nek !

Hogyan hozzunk létre egy gyárat

amikor egy osztálynak kemény függőségekkel kell rendelkeznie a legjobb gyakorlat az, ha konstruktor befecskendezési mintát használunk, ahol ezeket a függőségeket gyárilag injektáljuk.

tegyük fel, hogy a MyClass erősen függ egy $dependency értéktől, amelyet az alkalmazás konfigurációjából kell megoldani.

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

ennek a függőségnek az injektálásához gyári osztály jön létre. Ez a gyár megoldja a függőség a config, és adja meg a config értéket építése az osztály, és visszaadja az eredményt:

<?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; }} 

most, hogy a factory osztály jött létre azt kell regisztrálni belül service manager config a modul konfigurációs fájl module.config.php alatt a legfontosabb gyárak. Célszerű ugyanazokat a neveket használni mind az osztály, mind a gyár számára, így könnyű megtalálni őket a projekt mappafájában:

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

Alternatív megoldásként az osztálynév állandók felhasználhatók a regisztrációhoz:

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

most az osztály összegyűjthető a szervizkezelőnél azzal a kulccsal, amelyet az adott osztály gyárának regisztrálásakor használtunk:

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

vagy

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

a szolgáltatáskezelő megkeresi, összegyűjti és futtatja a gyárat, majd visszaadja az osztálypéldányt az injektált függőséggel.

telepítés vagy beállítás

részletes utasítások a Zend Framework 2 beállításához vagy telepítéséhez. A keretrendszer telepítésének különböző módjai vannak. Az alábbiakban néhány közülük:

használata zeneszerző-ajánlott módon

feltételezve composer van telepítve a cél mezőbe.

csontváz MVC alkalmazás telepítéséhez futtassa a terminálon egy új zend framework 2 projekt létrehozását a megadott helyen:

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

a minimális ZF2 (Zend MVC + annak maroknyi függősége) manuális telepítéséhez futtassa a parancssorban:

composer require zendframework/zend-mvc 

vagy egy teljes értékű ZF2-hez (+64 modul):

composer require zendframework/zendframework` 

Felhívjuk figyelmét, hogy az első lehetőség fut egy telepítő, amely az Ön számára egy teljesen functionnal alkalmazás mellett a szokásos alkalmazás könyvtárak szerkezetét. Más lehetőségek segítségével építeni az egész alkalmazás a semmiből, mert egyszerűen biztosítja ZF2 modulok építeni.

Git Almodulok használata

futtassa az alábbi parancsot a Zf2 klónozásához, és a függőségek rekurzív módon a Github-ból:

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

HTTP Server Setup

egy tipikus webes alkalmazásnak szüksége van egy HTTP szolgáltatás futtatására, amely egy dedikált portot (általában :80) hallgat, hogy a bejövő kéréseket átadja az alkalmazásnak, feldolgozza és kiszolgálja a kimenetet (választ).

Megjegyzés: Azt is írni konzol-tudatos alkalmazások Zend Framework 2 anélkül, hogy a HTTP szerver.

1.opció – PHP CLI Server

a legegyszerűbb módja az indulásnak, ha PHP 5.4 vagy újabb verziót használ, ha elindítja a belső PHP cli-szervert a gyökérkönyvtárban.

menj a projekt könyvtárába és futtasd:

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

ez elindítja a beépített cli-szervert a 8080 porton, és az összes hálózati interfészhez köti.

2.lehetőség – egyéni HTTP-kiszolgáló

konfiguráljon egy virtualhostot Apache vagy Microsoft IIS kiszolgálón vagy Nginx-en, és adja át a bejövő HTTP-kéréseket az alkalmazásnak.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.