자체 MVC 프레임워크에서 라우트 작업하기
이미 알고 계시듯이, 파일 /project/config/routes.php에는
URL과 컨트롤러 및 액션 간의 매핑을 지정하는
라우트가 배치됩니다. 라우트는
Route 클래스의 객체로 표현됩니다.
파일 /core/Route.php에 이 클래스를 만들어 보겠습니다:
<?php
namespace Core;
class Route
{
private $path;
private $controller;
private $action;
public function __construct($path, $controller, $action)
{
$this->path = $path;
$this->controller = $controller;
$this->action = $action;
}
public function __get($property)
{
return $this->$property;
}
}
?>
보시다시피, 이 클래스의 속성들은 읽기 전용으로, 매직 메서드를 사용하여 구현되었습니다.
이제 라우트 파일을 살펴보세요. 여러분은
return을 통해 반환되는 배열이
거기에 있음을 확인할 수 있습니다. 이것은
require로 이러한 파일을 포함시킬 경우,
포함 결과를 변수에 기록할 수 있으며
그 변수 안에 우리의 배열이 담기게 됨을 의미합니다:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// 자동 로딩 구현
});
// 라우트 파일에서 배열을 읽어 변수에 저장:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
제 Route 클래스 코드를 복사하여
파일 /core/Route.php에 배치하세요.
파일 index.php에서 라우트 배열을 가져오세요.