Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

router controller #12

Open
riagie opened this issue Sep 9, 2021 · 3 comments
Open

router controller #12

riagie opened this issue Sep 9, 2021 · 3 comments
Labels
documentation Improvements or additions to documentation question Further information is requested

Comments

@riagie
Copy link

riagie commented Sep 9, 2021

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

@naagaraa
Copy link
Owner

naagaraa commented Sep 9, 2021

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

@riagie
Copy link
Author

riagie commented Sep 9, 2021

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

@naagaraa
Copy link
Owner

naagaraa commented Sep 10, 2021

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

@naagaraa naagaraa added bug Something isn't working documentation Improvements or additions to documentation question Further information is requested and removed bug Something isn't working labels Sep 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants