ProjectController

Table of Contents

  1. Allgemein
    1. Beispiel

      Allgemein

      In Konquadrat ist es möglich sogenannte ProjectController zu erstellen. Im Hintergrund ist einfach bereits eine Route im Konquadrat konfiguriert die auf bestimmte Controller matcht. Standardmäßig müssen ProjectController im Ordner "kon2/classes/Controller/" hinterlegt werden mit dem Namespace "\com\setasign\Konquadrat\Custom\Controller".

      ProjectController können über folgende Route aufgerufen werden: /kon2{controller-name}/{action-name}
      Der Action-Name kann auch weggelassen werden, hierbei wird dann die "indexAction" aufgerufen.

      Controller-Actions können ihre Parameter injekten lassen vom Di (mehr dazu hier), hierbei wird selbstverständlich das Konquadrat-Di verwendet.

      Ansonsten verhalten sich ProjectController exakt wie "normale" SetaFramework-Controller.

      Um einen ProjectController über den ControllerDispatcher zu holen, muss folgende Variante verwendet werden:

      PHP
      $controllerDispatcher->getController('Debug', ['projectController' => true]);

      Beispiel

      PHP
      <?php
      declare(strict_types=1);
      // file: kon2/classes/Controller/Debug
      namespace com\setasign\Konquadrat\Custom\Controller;
      
      use com\setasign\SetaFramework\Controller\AbstractController;
      
      class Debug extends AbstractController
      {
          // requestPath: /kon2debug/hello-world
          public function helloWorldAction(): void
          {
              $this->getView()->setDefaultScript(function () {
                  return 'Hello World!';
              });
          }
      }