Base Controller
BaseController provides convenient helper methods for common controller operations. Controllers can optionally extend BaseController to access these utilities without manual service retrieval.
Using BaseController
Extend BaseController in your controller classes to access helper methods:
<?php
namespace App\Controllers;
use Quellabs\Canvas\Controllers\BaseController;
use Quellabs\Canvas\Annotations\Route;
use Symfony\Component\HttpFoundation\Response;
class UserController extends BaseController {
/**
* @Route("/users")
*/
public function index(): Response {
// With BaseController, you get helper methods
return $this->render('users/index.tpl');
}
}
Available Helper Methods
| Method | Description | Example |
|---|---|---|
render($template, $data, $status) |
Render a template and return Response | $this->render('users/index.tpl', ['users' => $users]) |
json($data, $status) |
Return JSON response | $this->json(['users' => $users]) |
text($text, $status) |
Return plain text response | $this->text('Hello World') |
redirect($url, $status) |
Redirect to another URL | $this->redirect('/users') |
notFound($message, $status) |
Return 404 response | $this->notFound('User not found') |
forbidden($message, $status) |
Return 403 response | $this->forbidden('Access denied') |
em() |
Get EntityManager instance | $this->em()->findAll(User::class) |
view() |
Get template engine instance | $this->view()->render('partial.tpl') |
service($className) |
Get any service from container | $this->service(CacheInterface::class) |