작성
·
539
0
레거시는 이해가 되는데 mvc초입이 이해안되는부분이 많네요
최초 url localhost 접근시 localhost/index.php 로 가서
require_once dirname(__DIR__) . '/bootstrap/app.php' 에 의해 해당 내용 읽어오고
/bootstrap/app.php에서
lib 폴더(database,function)와 service(유저인증,글정보수정등록,유저정도등록수정기능) 폴더 가져오고
providers(에러,DB,세션,미들웨어,라우트) 읽어오면
라우트에서
$routes = array_merge(require_once dirname(__DIR__, 2) . "/routes/{$route}.php", $routes);
위에서 접근하면 최초에는 $routes가 빈값으로 접근되어서
web.php 의
return [ [ '/', 'get', 'index.index' ], .... ];
내용이 리턴되어 lib/function 의 routes 함수통해
function routes($routes)
controllers 폴더 index.php에 index 함수에 접근하고 index라는 값과 getPosts함수로 글목록을 가져온뒤 view 함수로 /resources/views/layouts/app.php 통해 화면 그리기 이게 맞나요?
<a href="/user/register">Register</a>
href가 함수 형태도 아닌데 어떻게 페이지 이동을 시키는것인가요?
답변 1
0
안녕하세요. MVC 를 처음 접하시는 거라면 어려울 수 있습니다. 저도 레거시에서 MVC 를 이해하기까지는 시간이 제법 걸렸기 때문입니다. 자바의 스프링 프레임워크와 같은 곳에서는 일상적으로 쓰이고 있으나 PHP 에서는 레거시에서 나아가야 하기 때문에 더 그럴 것입니다.
순서에 대한 이해는 잘 하신 것으로 생각됩니다. 다시 한 번 살펴보기 위해 이 내용은 그림으로 설명하는 것이 조금 더 명확하므로 그림으로 나타내겠습니다. 사용자가 /
라는 경로로 요청을 했을 때를 그림으로 나타내면 다음과 같습니다.
사용자의 요청은 public/index.php
로 모두 모이게되며, 그 다음 부트스트래핑(Bootstrapping) 과정을 거친 이후, routes/web.php, routes/api.php
에 명시된 라우트에서 사용자가 요청한 라우트에 등록된 컨트롤러를 실행합니다. 해당 컨트롤러에서 view 를 반환하는 경우 데이터와 함께 반환할 수 있으며, view 에서는 레이아웃을 포함하고 데이터를 지정합니다.
<a>
에 대한 내용은 HTML 과 관련된 내용이므로 제가 답변드리기 보다는 MDN 을 참고하는 것이 더 좋습니다.