일단 간단한 라우팅 기능만 만들어봤습니다.
2년전에 잠깐 php 배웠다가 이제와서 다시 건들여보고있습니다.
코딩 요약설명은
모든 웹페이지 요청을 controller.php에 가게하고
요청 주소에따라 원하는 php페이지를 렌더링 하는 기능입니다.
mvc중 vc인거죠
뭔가 허접해보이는데 개선가능한점 댓글좀!
아그리고 php다중 클래스 안되는건가요?
디텍토리
root
-views(폴더)
--index.php
--bbs.php
-controller.php
//controller.php
<?php
class Res{
function __construct(){
}
function render($viewName){
$viewDir ="views/".$viewName;
$file = fopen($viewDir, "r") or die("Unable to open file!");
echo fread($file,filesize($viewDir));
fclose($file);
}
}
class Controller{
function __construct(){
}
function get($URL,callable $callback){
$res = new Res();
$requestURL = $_SERVER["REQUEST_URI"];
if( $requestURL == $URL){
$callback("req",$res);
}
}
}
$app = new Controller();
$app->get("/",function($req,$res){
$res->render("index.php");
});
$app->get("/bbs",function($req,$res){
$res->render("bbs.php");
});
?>
혐오스럽네요
ㅜㅜ왜죠
오토로드 추가해서 클래스당 파일하나로 작성하는걸 권장됨. 글구 render 저함수내에서 파일핸들링 저거 대신에 readfile이란 함수로 동일한 기능을함. 저것보다 더 용량 큰 사이즈도 지원됨. 요량큰 파일같은거 뿌려줄때 저건 메모리 문제있음.
ㄳ
ㄳ 인터넷에 떠돌아다닌는 코드 짜집기해서 만든거라 허접함