Zaczynamy zabawę routingiem – bez tego nigdy nie zbudujemy własnego frameworka MVC. Do dzieła.
W folderze, w którym się znajdujemy (u mnie to sometry) tworzymy plik .htaccess:
RewriteEngine On
RewriteRule ^ entry.php
Tak jak to zapisaliśmy, każdy URL będzie przekierowywany do pliku entry.php, który musimy utworzyć:
<?php
echo "from entry.php";
W moim przypadku odświeżyłem po prostu adres:
http://localhost/sometry/enum.php
Ruch został przekierowany do pliku entry.php.
Teraz poznajmy request_uri. W pliku entry.php piszemy:
<?php
class Helper {
public static function request_uri()
{
echo $_SERVER['REQUEST_URI'];
}
}
Helper::request_uri();
///sometry/enum.php
Dostajemy w ten sposób URI, jakie wpisaliśmy.
Teraz zmieńmy trochę klasę:
<?php
class Helper {
public static function request_uri()
{
print_r(explode("/", $_SERVER['REQUEST_URI']));
}
}
Helper::request_uri();
//Array ( [0] =>
//[1] => sometry
//[2] => enum.php )
Okej, powinniśmy już widzieć, do czego to zmierza. Zamiast enum.php, wpiszmy /controller/action:
<?php
class Helper {
public static function request_uri()
{
print_r(explode("/", $_SERVER['REQUEST_URI']));
}
}
//http://localhost/sometry/controller/action
Helper::request_uri();
// Array ( [0] =>
// [1] => sometry
// [2] => controller
// [3] => action )
Teraz możemy zrobić coś takiego:
<?php
class Helper {
public static function request_uri()
{
$uri = explode("/", $_SERVER['REQUEST_URI']);
$action = array_pop($uri);
$controller = array_pop($uri);
echo "Controller: $controller, Action: $action";
}
}
//http://localhost/sometry/home/index
Helper::request_uri();
//Controller: home, Action: index
Okej, jesteśmy na dobrej drodze. Pomyślmy jak można to wykorzystać. Jeżeli się nie uda – w następnej lekcji pokażę, co z tym zrobić.