Aby dodać kontroler w Zend Framework 3 za pomocą wiersza poleceń, należy wykonać następujące kroki:
Otwórz terminal lub wiersz poleceń.
Przejdź do katalogu projektu Zend Framework 3.
Wykonaj polecenie
php vendor/bin/zf.php create controller [nazwa-kontrolera] [nazwa-modulu], gdzie[nazwa-kontrolera]to nazwa kontrolera, który chcesz utworzyć, a[nazwa-modulu]to nazwa modułu, w którym ma być utworzony kontroler. Na przykład, aby utworzyć kontroler o nazwieIndexControllerw module o nazwieApplication, należy wykonać poleceniephp vendor/bin/zf.php create controller Index Application.Wprowadź żądane informacje w odpowiedzi na pytania wiersza poleceń, takie jak katalog, w którym ma być utworzony plik kontrolera.
Po zakończeniu polecenia, zostanie utworzony plik kontrolera w odpowiednim katalogu. Możesz teraz edytować plik kontrolera, aby dodać logikę i metody obsługi żądań.
Pamiętaj, że po dodaniu kontrolera musisz również skonfigurować trasy routingu w pliku
module.config.php, aby określić, jakie żądania HTTP powinny być kierowane do nowo utworzonego kontrolera.
Przykład:
Aby utworzyć kontroler UserController w module User, należy wykonać polecenie:
php vendor/bin/zf.php create controller User User
Po zakończeniu tego polecenia zostanie utworzony plik kontrolera UserController.php w katalogu module/User/src/Controller. Następnie musisz skonfigurować odpowiednie trasy routingu dla nowego kontrolera w pliku module/User/config/module.config.php.
Kontroler w Zend Framework 3 można także dodać ręcznie, należy wykonać następujące kroki:
Utwórz plik kontrolera w katalogu
module/[nazwa-modułu]/src/Controller. Możesz nadać plikowi nazwę odpowiadającą nazwie kontrolera, np.IndexController.php.W pliku kontrolera musisz utworzyć klasę kontrolera, która będzie dziedziczyć po klasie
AbstractActionController. Możesz dodać metody obsługujące żądania HTTP, np.indexAction(),addAction(), itd. Oto przykładowy kod kontrolera:
namespace [NazwaModulu]\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class IndexController extends AbstractActionController
{
public function indexAction()
{
return new ViewModel();
}
}
- Po utworzeniu kontrolera musisz skonfigurować trasy routingu w pliku
module.config.php, aby określić, jakie żądania HTTP powinny być kierowane do nowego kontrolera. Oto przykładowy kod konfiguracji dla kontroleraIndexController:
return [
'router' => [
'routes' => [
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => IndexController::class,
'action' => 'index',
],
],
],
],
],
'controllers' => [
'factories' => [
IndexController::class => InvokableFactory::class,
],
],
'view_manager' => [
'template_path_stack' => [
...
],
],
];
W powyższym kodzie router określa trasy routingu, controllers określa mapowanie kontrolerów, a view_manager określa widoki. Skonfigurowano tutaj trasę dla kontrolera IndexController, który będzie odpowiadał na żądania HTTP z adresu / i akcję indexAction(). Trasa ta ma nazwę home, ale można ją nazwać dowolnie. Po wykonaniu tych kroków nowy kontroler powinien działać w aplikacji Zend Framework 3.