Nowy kontroler w aplikacji Zend Framework 3 krok po kroku

Aby dodać kontroler w Zend Framework 3 za pomocą wiersza poleceń, należy wykonać następujące kroki:

  1. Otwórz terminal lub wiersz poleceń.

  2. Przejdź do katalogu projektu Zend Framework 3.

  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 nazwie IndexController w module o nazwie Application, należy wykonać polecenie php vendor/bin/zf.php create controller Index Application.

  4. Wprowadź żądane informacje w odpowiedzi na pytania wiersza poleceń, takie jak katalog, w którym ma być utworzony plik kontrolera.

  5. 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ń.

  6. 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:

  1. Utwórz plik kontrolera w katalogu module/[nazwa-modułu]/src/Controller. Możesz nadać plikowi nazwę odpowiadającą nazwie kontrolera, np. IndexController.php.

  2. 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();
    }
}

				
			
  1. 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 kontrolera IndexController:
				
					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.