Agus Belajar, Menulis Kode dan Berbagi. English

PageController v FrontController dalam OpenbizX

| Refactoring, OpenbizX, Openbiz, Controller, FrontController, PageController

5 Bulan lalu, sy merefactor (rename) Openbiz View menjadi WebPage dalam OpenbizX. Karena sebenarnya hal itu bukan bagian view dalam MVC, melainkan controller.

Dalam arsitektur MVC, controller ini ada 2 jenis,

- menggunakan PageController
- menggunakan FrontController

PageController

Cara kerja PageController ini lebih simpel, satu page satu controller dan bisa langsung di akses dari file controller tersebut dibuat. Hanya satu action dalam PageController.

Contoh ya :

 
// article.php
class ArticleController extends PageController
{
	public process()
	{
		$model = new ArticleModel();
		$this->view->render(['model' => $model]);
	}
}

$controller = new ArticleController();
$controller->process();

It’s, very simple :D

Kenapa kok tidak begini saja?

 
// article.php

$model = new ArticleModel();
$view = new View();
$view->render(['model' => $model]);
	

Kan jadi lebih simple? Tidak, itu memang terlihat lebih simple, tetapi dampaknya justru tidak simple lagi, karena mengekspos variable menjadi GLOBAL.

JIka kita ingin menambah proses dalam controller dan membutuhkan variable tingkat controller, maka variable tersebut akan menjadi global juga.

FrontController

Oke, untuk yang menggunakan FrontController, contohnya sudah banyak tersebar. Pada umumnya framework-framework yang ada saat ini menggukan FrontController. Kelebihan menggunakan FrontController ini adalah route menjadi lebih fleksibel.

Controller dalam OpenbizX

Nah yang unik dari OpenbizX ini adalah menggabungkan ke dua hal diatas, PageController dan FrontController sekaligus. Tetap mempertahankan kesederhanaan PageController tetapi menggunakan fleksibilitas FrontController. Tidak itu saja, PageController di OpenbizX saya rencanakan bisa memiliki action tambahan, tetapi action ini hanya dipakai untuk sesuatu yang terkait dengan controller.

Sekian dulu ya. Lanjut nanti lagi :D

Agus Suhartono

Comments

comments powered by Disqus