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.