ProjectController
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:
$controllerDispatcher->getController('Debug', ['projectController' => true]);
Beispiel
<?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!';
});
}
}
