naagaraa/mini-mvc-php-native

router controller

riagie opened this issue · 3 comments

pada bramus/router tidak terdapat fungsi return yang bisa menghasilkan output echo sedangkan pada Controller terdapat return.
sudah saya coba cari di file mana untuk proses outputnya namun tidak mendaptkannya contoh Routes::Routing.

di file manakah yang terdapat untuk proses output tsb

maaf mas @riagie saya sedikit kurang faham dari pertanyaanya, mungkin seperti ini maksudnya "bagaimana proses atau core ( inti )dari fungsi Routes::Routing" ? dan "file manakah yang yang mengaturnya ?" jika seperti berikut maksudnya maka, saya berikan jawabannya seperti ini. routes dibuat dengan libraries route : dengan format seperti ini.

use \Bramus\Router\Router;

// Create a Router object dari bramus router
$router = new Router();

   # configuruation route
    $router->get('/', function () {
             Routes::Routing('controller', 'method');  # core funtion route yang mengatur controller dan method serta parameter
    });

// run route!
$router->run();
;

pada fungsi Routes::Routing() ini berada pada folder apps/core/Routes.php yang dipanggil secara static method Class::Method membutuhkan beberapa parameter nama class, nama method, paramter,

cara kerjanya adalah untuk memanggil class dengan oop style seperti ini :

// call classs and method OOP style
$controllers::{$method}($params);

maka outpunya akan memanggil class::method(paramter). example HomeController::index(params).

untuk documentasi yang saya tulis bisa cek disini mini-mvc
untuk file corenya bisa di cek disini routes.php

maaf mas @riagie saya sedikit kurang faham dari pertanyaanya, mungkin seperti ini maksudnya "bagaimana proses atau core ( inti )dari fungsi Routes::Routing" ? dan "file manakah yang yang mengaturnya ?" jika seperti berikut maksudnya maka, saya berikan jawabannya seperti ini. routes dibuat dengan libraries route : dengan format seperti ini.

use \Bramus\Router\Router;

// Create a Router object dari bramus router
$router = new Router();

   # configuruation route
    $router->get('/', function () {
             Routes::Routing('controller', 'method');  # core funtion route yang mengatur controller dan method serta parameter
    });

// run route!
$router->run();
;

pada fungsi Routes::Routing() ini berada pada folder apps/core/Routes.php yang dipanggil secara static method Class::Method membutuhkan beberapa parameter nama class, nama method, paramter,

cara kerjanya adalah untuk memanggil class dengan oop style seperti ini :

// call classs and method OOP style
$controllers::{$method}($params);

maka outpunya akan memanggil class::method(paramter). example HomeController::index(params).

untuk documentasi yang saya tulis bisa cek disini mini-mvc
untuk file corenya bisa di cek disini routes.php

pada bramus router untuk output html mengharuskan menggunakan echo. sedangkan pada @naagaraa di controler hanya return dan router hanya tujuan ke Routes::Routing tidak ada code echo untuk output html.

dimanakah sya bisa cek untuk proses code output html nya

maaf mas @riagie saya sedikit kurang faham dari pertanyaanya, mungkin seperti ini maksudnya "bagaimana proses atau core ( inti )dari fungsi Routes::Routing" ? dan "file manakah yang yang mengaturnya ?" jika seperti berikut maksudnya maka, saya berikan jawabannya seperti ini. routes dibuat dengan libraries route : dengan format seperti ini.

use \Bramus\Router\Router;

// Create a Router object dari bramus router
$router = new Router();

   # configuruation route
    $router->get('/', function () {
             Routes::Routing('controller', 'method');  # core funtion route yang mengatur controller dan method serta parameter
    });

// run route!
$router->run();
;

pada fungsi Routes::Routing() ini berada pada folder apps/core/Routes.php yang dipanggil secara static method Class::Method membutuhkan beberapa parameter nama class, nama method, paramter,
cara kerjanya adalah untuk memanggil class dengan oop style seperti ini :

// call classs and method OOP style
$controllers::{$method}($params);

maka outpunya akan memanggil class::method(paramter). example HomeController::index(params).
untuk documentasi yang saya tulis bisa cek disini mini-mvc
untuk file corenya bisa di cek disini routes.php

pada bramus router untuk output html mengharuskan menggunakan echo. sedangkan pada @naagaraa di controler hanya return dan router hanya tujuan ke Routes::Routing tidak ada code echo untuk output html.

dimanakah sya bisa cek untuk proses code output html nya

" proses code output html" ? letak code html yang dimaksud.

ada pada directory apps/views .

arsitekture ? karena saya mengadopsi MVC maka, polanya seperti ini, jika pada umumnya hanya menggunakan libraries bramus route saja untuk routing tampa konsep. untuk mencetak HTML perlu melakukan perintah echo "some code"

pattern bramus :
jika seperti ini maka menampilan HTML saja

$router->get('/', function () {
            echo "HTML code"
    });

namun karena mengadopsi MVC (Model View Controller) arsitekture maka polanya menjadi seperti ini :
route -> controller -> method -> views

  • route arah url
  • controller dan method mengandle logic untuk proses
  • view menghandle output HTML dan code yang di proses di controller

berkas controller ada pada folder apps/controller,
berkas view/html ada pada directory apps/view.

maka bentuknya jadi seperti ini :

$router->get('/', function () {
             Routes::Routing('NamaController', 'namaMethod');  # core funtion route yang mengatur controller dan method serta parameter
    });

Routes::Routing() -> mengarah ke file controller dan methodnya.

contoh :
route mengarah ke NamaController dan methodnya namaMethod,

class NamaController extends Controller
{
	public function __construct()
	{
		// constructor here

	}

	public function namaMethod()
	{
		// code index here                         # -> ini contoh code prosesnya yang memberikan nilai array
		$data = [
			'judul' => "Example view",
			'content' => "this is content"
		];

		$this->view("home_view", $data); # ini akan mengirim data $data berupa array ke file html / viewnya
	}
}

pada berkas view akan menerima data array dari controller untuk di outputkan pada HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Basic View</title>
</head>
<body>
    <h1><?= $judul ?></h1>
</body>
</html>

selengkapnya basic documentasinya saya tulis disini mini-mvc-docs