zend-framework2 pierwsze kroki z zend-framework2

uwagi

Zend Framework 2 (Zf2) to nowoczesny i elastyczny framework PHP, który pomaga twórcom stron internetowych w tworzeniu aplikacji internetowych o różnej złożoności. Głównym sponsorem firmy Zend Framework jest firma Zend Technologies, dzięki czemu jest ona bardzo mocna i stabilna. Istnieją dwie główne ulepszenia tej drugiej wersji nad ZF1. Po pierwsze, architektura oparta na modułach została przyjęta domyślnie bez żadnych poprawek. Jest to przydatne, gdy rozwijamy aplikację internetową o dużych rozmiarach, która wymaga rozkładu na moduły. Po drugie, ZF2 implementuje wszystkie funkcje PHP5. 3+ może oferować szczególnie przestrzenie nazw. W poprzednich wersjach Klasa kontrolera jest nazwana następująco:

class IndexController extends Zend_Controller_Action{}

ta sama klasa jest przepisywana w ZF2 w następujący sposób:

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

oto kilka innych ciekawych funkcji ZF2:

  • wstrzykiwanie zależności
  • EventManager
  • ServiceManager

prosty Hello World

w wierszu poleceń wejdź do katalogu, w którym chcesz utworzyć projekt, a następnie wpisz: composer create-project zendframework/skeleton-application helloWorldTest. Podczas instalacji zostaniesz zapytany, czy chcesz minimalnej instalacji: powiedzmy, że tak na razie, tylko testujemy.

dla uproszczenia użyjemy wbudowanego serwera PHP CLI. Z wiersza poleceń wejdź do katalogu głównego swojego projektu (helloWorldTest ), a następnie uruchom : php -S 0.0.0.0:8080 -t public/ public/index.php . Teraz otwórz przeglądarkę internetową i przejdź do http://localhost/, powinieneś zobaczyć stronę powitalną szkielet aplikacji Zf2.

jeśli to zrobisz, skonfigurujemy teraz nową stronę. W module/Application/config/module.config.php widać, że dynamiczna trasa jest już ustawiona dla podfolderu aplikacji:

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

Ustaw nową akcję „helloWorldAction() ” w module/Applicaiton/src/Controller/IndexController.php :

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

na koniec utwórz plik widoku module/Application/view/application/index/hello-world.phtml z następującą zawartością:

<?phpecho "Hello World !"; 

teraz przejdź do http://localhost/application / hello-world i przywitaj się z ZF2 !

jak utworzyć fabrykę

gdy klasa musi być dostarczona z twardymi zależnościami najlepszą praktyką jest użycie wzorca wtrysku konstruktora, w którym te zależności są wstrzykiwane przy użyciu fabryki.

Załóżmy, że MyClass jest trudne w zależności od wartości $dependency, która musi zostać rozwiązana z konfiguracji aplikacji.

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

aby wstrzyknąć tę zależność, tworzona jest klasa fabryczna. Ta fabryka rozwiąże zależność od konfiguracji i wstrzyknie wartość konfiguracyjną podczas budowy klasy i zwróci wynik:

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

teraz, gdy Klasa factory została utworzona, należy ją zarejestrować w konfiguracji service manager w pliku konfiguracyjnym modułu module.config.php w obszarze key Factory. Dobrą praktyką jest używanie tych samych nazw zarówno dla klasy, jak i fabryki, więc łatwo jest je znaleźć w drzewie folderów projektu:

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

alternatywnie stałe nazwy klasy mogą być użyte do ich rejestracji:

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

teraz klasę można odebrać w Service manager za pomocą klucza, którego użyliśmy podczas rejestracji fabryki dla tej klasy:

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

lub

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

Menedżer usług znajdzie, zbierze i uruchomi fabrykę, a następnie zwróci instancję klasy z wstrzykniętą zależnością.

instalacja lub Konfiguracja

szczegółowe instrukcje dotyczące konfiguracji lub instalacji Zend Framework 2. Istnieją różne sposoby instalacji frameworka. Poniżej znajdują się niektóre z nich:

używanie Composera – zalecany sposób

zakładając, że composer jest zainstalowany na polu docelowym.

aby zainstalować szkielet aplikacji MVC, uruchom w swoim terminalu, aby utworzyć nowy projekt zend framework 2 w określonej lokalizacji:

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

aby ręcznie zainstalować minimalny ZF2 (Zend MVC + jego garść zależności), uruchom w wierszu poleceń:

composer require zendframework/zend-mvc 

lub dla pełnoprawnego ZF2 (+64 Moduły):

composer require zendframework/zendframework` 

należy pamiętać, że pierwsza opcja uruchamia instalator, który zapewni Ci w pełni funkcjonalną aplikację wraz ze zwykłą strukturą katalogów aplikacji. Inne opcje pozwolą Ci zbudować całą aplikację od zera, ponieważ po prostu udostępnia Moduły ZF2 do budowania.

używając Podmodułów Git

uruchom poniższe polecenie, aby sklonować zf2 i jego zależności rekurencyjnie z Github:

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

Konfiguracja serwera HTTP

typowa aplikacja internetowa wymaga uruchomienia usługi HTTP nasłuchującej dedykowany port (zwykle: 80) w celu przekazania przychodzących żądań do aplikacji, przetworzenia i serwowania wyjścia (odpowiedzi) z powrotem.

Uwaga: W Zend Framework 2 można również pisać aplikacje świadome konsoli bez potrzeby korzystania z serwera HTTP.

opcja 1 – PHP CLI Server

najprostszym sposobem na rozpoczęcie pracy, jeśli używasz PHP 5.4 lub nowszego, jest uruchomienie wewnętrznego PHP CLI-server w katalogu głównym.

przejdź do katalogu projektu i uruchom:

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

spowoduje to uruchomienie wbudowanego cli-serwera na porcie 8080 i powiązanie go ze wszystkimi interfejsami sieciowymi.

opcja 2 – niestandardowy serwer HTTP

Skonfiguruj virtualhost na serwerze Apache lub Microsoft IIS lub Nginx i przekaż przychodzące żądania HTTP do aplikacji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.