Base View Controller
The BaseViewController is the fundamental component of Luminova's MVC component, serving as an important intermediary for managing view operations. This core class offers a structured approach to accepts instructions from the router and transmitting the relevant information to the template class for rendering views.
It establishes a solid foundation for building interactive and optimized web applications, well-suited for client-side rendering. While its primary focus is not limited to frontend operations, it also suitable for backend applications, ensuring consistency between frontend and backend functionalities.
- Class namespace:
\Luminova\Base\BaseViewController - This class is an Abstract class
Usages
To use BaseViewController class, you will need to extend it whenever you want create a new view controller class.
Below is an example of how a basic view controller class may look like, in this example we use __construct, optionally you can use onCreate method instead.
<?php
namespace App\Controllers;
use \luminova\Base\BaseViewController;
class BackendController extends BaseViewController
{
public function __construct()
{
parent::__construct();
}
public function user(): int
{
return $this->view('user', [
'foo' => 'bar'
]);
}
}Properties
Access to HTTP request object.
protected ?\Luminova\Http\Request $request = null;Access to input validation object.
protected ?\Luminova\Security\Validation $validate = null;Access to application object.
protected ?\App\Application $app = null;Note: In
BaseViewController, the$validateor$requestobject is not initialized by default.To use access it properties you must first initialized it in__constructoronCreatemethod by calling the proper method to create it e.g$this->request().
Methods
request
Initializes the HTTP request class instance.
protected final request(): \Luminova\Http\RequestReturn Value:
Request - Return request class instance.
validate
Initializes the input validation class instance.
protected final validate(): \Luminova\Security\ValidationReturn Value:
Validation - Return input validation class instance.
app
Initializes the application class instance.
protected final app(): \App\ApplicationReturn Value:
Application - Return application class instance.
view
The view method serves as a convenient alias or shorthand for rendering views within the ViewController class. It is equivalent to $this->app->view('view_file')->render().
protected final view(string $view, array $options = [], string $type = 'html'): intReturn Value:
int - Return STATUS_SUCCESS on success, otherwise STATUS_ERROR failure.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$view | string | The view file name without extension type. |
$options | array<string,mixed> | Optional options to be passed to view template. |
$type | string | The view content extension type (default: html). |
respond
The respond method is also a convenient alias or shorthand for returning view contents within the ViewController class. It is equivalent to $this->app->view('view_file')->respond().
protected final respond(string $view, array $options = [], string $type = 'html'): stringReturn Value:
string - Return view contents which is ready to be rendered.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$view | string | The view file name without extension type. |
$options | array<string,mixed> | Optional options to be passed to view template. |
$type | string | The view content extension type (default: html). |
View Types:
Any of these types are supported view type argument for respond and view method.
html- View will render HTML content.json- View will render JSON content.text- View will render Plain text content.xml- View will render XML content.js- View will render JavaScript content.css- View will render CSS content.rdf- View will render RDF content.atom- View will render Atom content.rss- View will render RSS feed content.
onCreate
The onCreate method serves as an alternative to __construct. It is invoked after the controller class has completed its initialization via the constructor method. When using this method for initialization, there is no need to explicitly call parent::__construct().
protected onCreate(): voidonDestroy
The onDestroy method acts as an alternative to __destruct. It is called after the __destruct method has completed its execution.
protected onDestroy(): void