Zend Controllers

What is a Controller?

A controller in Zend Framework is a PHP class that handles HTTP requests and returns responses. Each method inside the controller is called an action.

Think of a controller as the brain between the user (browser) and your application logic.

Controller Structure 

Zend controllers extend Laminas\Mvc\Controller\AbstractActionController.

📌 Example: MainController.php (module\Application\src\Controller\MainController.php)

namespace Application\Controller;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;

class MainController extends AbstractActionController
{
  public function indexAction()
  {
    return new ViewModel([
      'message' => 'Welcome to Zend!',
    ]);
  }
}

 Registering Controller – (module/Application/config/module.config.php)

'controllers' => [
  'factories' => [
    Controller\MainController::class => Laminas\ServiceManager\Factory\InvokableFactory::class,
  ],
],

How Actions Work

Each public method ending with Action is an action.

  • indexAction() → URL: /
  • aboutAction() → URL: /about

Passing Data to View

You use ViewModel to send data to a .phtml file:

return new ViewModel([
  'message' => 'Welcome to Zend!',
]);

Controller Action Return Types:

1.Normal website pages(Web)

use Laminas\View\Model\ViewModel;

public function indexAction()
{
    return new ViewModel(); // renders 'main/index.phtml'
}

public function aboutAction()
{
    return new ViewModel(['message' => 'About Page']);
}


3.Redirect to another route

public function aboutAction()
{
    return $this->redirect()->toRoute('dashboard'); // route name mention here
}


2.JsonModel(REST API)

use Laminas\View\Model\JsonModel;

public function getListAction() {
    return new JsonModel(['data' => ['a', 'b', 'c']]);
}

public function getAction($id) {
    return new JsonModel(['id' => $id]);
}

Each method ending with Action() is an action method.


Controller Action Return Types

Return Type

Description

new ViewModel()

Returns view data and renders view template

$this->redirect()->toRoute(...)

Redirect to another route

JsonModel

Return JSON response for APIs


Whereisstuff is simple learing platform for beginer to advance level to improve there skills in technologies.we will provide all material free of cost.you can write a code in runkit workspace and we provide some extrac features also, you agree to have read and accepted our terms of use, cookie and privacy policy.
© Copyright 2024 www.whereisstuff.com. All rights reserved. Developed by whereisstuff Tech.