controller adalah sebuah representasi yang mengolah bisinis logic sendiri yang saling terhubung dalam konsep MVC yaitu antara model dan view yang dihubungkan melalui route.
writing controller
basic controller
ini bentuk contoh controller dasar, ingat controller extends ke class controller pada core mini mvc php.use MiniMvc\Apps\Core\Bootstraping\Controller;
<?php
namespace app\controllers;
use MiniMvc\Apps\Core\Bootstraping\Controller;
class MainController extends Controller
{
public function __construct()
{
// constructor here
}
public function index()
{
// code index here
$data = [
'judul' => "Example view",
'content' => "this is content"
];
$this->view("nameofview", $data);
}
public function show($request)
{
// code here show here
}
public function create()
{
// code here create here
}
public function update($request)
{
// code here update here
}
public function remove($request)
{
// code here remove here
}
}
untuk selanjutkan kamu perlu mendefinisikan routingnya agar controller bisa dipanggil seperti berikut pada web.php ;
namespace MiniMvc\Apps\Routes\Bootstraping;
use \MiniMvc\Apps\Core\Bootstraping\Routes;
use \Bramus\Router\Router;
$router->get('example', function () {
Routes::Routing('ExampleController', 'index');
});
untuk routing lebih lanjut silahkan baca routing.
command shell nagara
untuk cara kedua juga bisa menggunakan command shell nagara
php nagara buat:controller NamaController
sudah bisa nested directory
php nagara buat:controller Folder/NamaController
php nagara buat:controller Folder/Folder/NamaController
passing data tke view
namespace app\controllers;
use MiniMvc\Apps\Core\Bootstraping\Controller;
class BasicController extends Controller
{
public function __construct()
{
// code here
}
public function index()
{
// echo "ini controller home";
$data = [
"title" => "homepage",
"content" => $this->model("artikel")->getall(),
];
$this->view("home_view", $data);
}
}