Remarks
Zend Framework 2 (ZF2) on moderni ja joustava PHP-kehys, joka auttaa web-kehittäjiä rakentamaan erilaisia web-sovelluksia. Zend Frameworkin tärkein sponsori on Zend Technologies, mikä tekee siitä erittäin vahvan ja vakaan. On olemassa kaksi suurta parannusta tämän toisen version yli ZF1. Ensinnäkin moduulipohjainen arkkitehtuuri on oletuksena hyväksytty ilman säätöä. Tämä on kätevä, kun kehitetään isokokoinen web-sovellus, joka vaatii hajoaminen moduulit. Toiseksi, ZF2 toteuttaa kaikki ominaisuudet PHP5. 3+ voi tarjota erityisesti nimiavaruudet. Aiemmissa versioissa ohjainluokka on nimetty seuraavasti:
class IndexController extends Zend_Controller_Action{}
tämä sama luokka kirjoitetaan uudelleen zf2: ssa seuraavasti:
namespace Application\Controller;use Zend\Mvc\Controller\AbstractActionController;class IndexController extends AbstractActionController{}
Seuraavassa on joitakin muita jännittäviä ominaisuuksia ZF2:
- dependence Injection
- EventManager
- ServiceManager
yksinkertainen Hello World
mene komentorivillesi hakemistoon, jossa haluat luoda projektin, ja kirjoita sitten: composer create-project zendframework/skeleton-application helloWorldTest
. Asennuksen aikana, sinulta kysytään, jos haluat minimaalinen asennus: sanotaan kyllä tällä hetkellä, olemme vain testaus.
yksinkertaisuuden vuoksi käytämme sisäänrakennettua PHP CLI-palvelinta. Mene komentoriviltä projektisi juurihakemistoon (helloWorldTest
) ja aja sitten : php -S 0.0.0.0:8080 -t public/ public/index.php
. Avaa nyt verkkoselaimesi ja siirry kohtaan http://localhost/, kannattaa nähdä zf2-Luurankosovelluksen tervetuliaissivu.
jos teet niin, asetamme nyt uuden sivun. module/Application/config/module.config.php
voit nähdä, että dynaaminen reitti on jo asetettu sovelluksen alikansioon:
return , 'application' => ', 'defaults' => , ], ], ], ],
Aseta uusi toiminto ” helloWorldAction()
”module/Applicaiton/src/Controller/IndexController.php
:
class IndexController extends AbstractActionController{ public function indexAction() { ... } public function helloWorldAction() { return new ViewModel(); }}
luo lopuksi näkymätiedosto module/Application/view/application/index/hello-world.phtml
seuraavalla sisällöllä:
<?phpecho "Hello World !";
nyt, mene http://localhost/sovellus / hello-maailma, ja sano Hei ZF2 !
miten luodaan tehdas
kun luokalle on annettava kovat riippuvuudet paras käytäntö on käyttää rakentajan ruiskutuskuviota, jossa riippuvuudet ruiskutetaan tehtaalla.
oletetaan, että MyClass
on vaikeasti riippuvainen arvosta $dependency
, joka on ratkaistava sovelluksen asetuksista.
<?phpnamespace Application\Folder;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClass{ protected $dependency; public function __construct($dependency) { $this->dependency = $dependency; }}
tämän riippuvuuden injektoimiseksi luodaan tehdasluokka. Tämä tehdas ratkaisee riippuvuuden configista ja pistää config-arvon luokan rakentamiseen ja palauttaa tuloksen:
<?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; }}
nyt kun tehdasluokka on luotu, se on rekisteröitävä service manager config: n sisällä module config-tiedostossa module.config.php
avaintehtaiden alla. On hyvä käytäntö käyttää samoja nimiä sekä luokalle että tehtaalle, joten ne on helppo löytää projektikansiopuusta:
<?phpnamespace Application;return array( //... 'service_manager' => ], //...);
vaihtoehtoisesti luokan nimivakioita voidaan käyttää niiden rekisteröimiseen:
<?phpnamespace Application;use Application\Folder\MyClass;use Application\Factory\MyClassFactory;return array( //... 'service_manager' => ], //...);
nyt luokan voi kerätä huoltopäälliköltä avaimella, jota käytimme tehdasta rekisteröitäessä kyseiseen luokkaan:
$serviceManager->get('Application\Folder\MyClass');
tai
$serviceManager->get(MyClass::class);
huoltopäällikkö etsii, kerää ja pyörittää tehdasta ja sitten se palauttaa luokkaesiintymäsi riippuvuuden injektoimana.
Installation or Setup
Detailed instructions on getting Zend Framework 2 set up or installed. On olemassa erilaisia tapoja asentaa kehyksen. Alla muutamia niistä:
käyttäen säveltäjän suosittelemaa tapaa
olettaen, että composer
on asennettu kohdelaatikkoon.
jos haluat asentaa skeleton MVC-sovelluksen, suorita päätelaitteessasi ja luo uusi Zend framework 2-projekti määrättyyn paikkaan:
php composer.phar create-project -sdev \ --repository-url="https://packages.zendframework.com" \ zendframework/skeleton-application path/to/install
jos haluat asentaa käsin minimaalisen ZF2: n (Zend MVC + sen kourallinen riippuvuuksia), suorita komentorivillä:
composer require zendframework/zend-mvc
tai täysiveriselle ZF2: lle (+64 moduulia):
composer require zendframework/zendframework`
huomaa, että ensimmäisessä vaihtoehdossa on asennusohjelma, joka tarjoaa sinulle täysin funktionaalisen sovelluksen tavallisen sovellushakemistorakenteen kanssa. Muut vaihtoehdot voit rakentaa koko sovelluksen tyhjästä, koska se yksinkertaisesti tarjoaa ZF2 moduulit rakentaa.
käyttäen Git-Alimoduleita
suorita alla oleva komento kloonataksesi zf2: n ja sen riippuvuudet rekursiivisesti GitHubista:
git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive
HTTP-palvelimen asennus
tyypillinen web-sovellus vaatii HTTP-palvelun suorittamisen kuuntelemalla omaa porttia (yleensä 80), jotta saapuvat pyynnöt voidaan siirtää sovellukselle, käsitellä ja palvella lähtö (vastaus) takaisin.
Huom.: Voit myös kirjoittaa konsolitietoisia sovelluksia Zend Framework 2: een ilman tarvetta HTTP-palvelimelle.
vaihtoehto 1-PHP CLI-palvelin
yksinkertaisin tapa päästä alkuun, jos käytät PHP 5.4: ää tai sitä ylempää, on käynnistää sisäinen PHP cli-palvelin juurihakemistossa.
Siirry projektihakemistoon ja suorita:
php -S 0.0.0.0:8080 -t public/ public/index.php`.
Tämä käynnistää builtin cli-palvelimen portilla 8080
ja sitoo sen kaikkiin verkkoliittymiin.
vaihtoehto 2-mukautettu HTTP-palvelin
Määritä virtualhost Apachessa tai Microsoftin IIS-palvelimessa tai Nginxissä ja siirrä saapuvat HTTP-pyynnöt sovellukseen.