2014-10-21 4 views
1

내 대학의 최신 강연에서 교수가 경로에서 View 템플릿을 반환하고 있습니다.왜 Laravel은 경로에서보기를 렌더링 할 수 있습니까?

Route::get('/list', function() { 
return View::make('list'); 
} 

나는 이것이 어떻게 가능한지 이해하지 못합니다. 컨트롤러 만 View와 상호 작용할 수 있다고 생각 했나요? 경로가보기와 어떻게 상호 작용합니까? 이것은 우리의 앱에있는 모든 클래스가 View::make을 호출하고 뷰 템플릿이 렌더링되도록 제어 할 수 있다는 것을 의미합니까?

이렇게하면 경로가 돌아 오는 경로에 대한 더 큰 질문이 제기됩니까? 즉, Laravel 서버가 요청을 받으면 서버의 일부가 경로를 ping하고 경로는 템플릿을 반환합니다. 템플릿을 반환하는 경로는 무엇입니까? index.php라고 가정하고 있습니다. 거기에는 많은 부트 스트래핑 방법이 있습니다. 누군가가 Laravel의 작동 방식과 경로에서 전망을 렌더링 할 수있는 이유에 대한 내부 구조를 설명 할 수 있습니까?

+0

복잡한 컨트롤러가 필요없는 작은 앱을 만드는 사람들에게 편리한 바로 가기입니다. 너는 과한 생각이있어. – ceejayoz

답변

2

요청 라이프 사이클은 아주 잘 Laravel 문서에 설명되어 있습니다 : http://laravel.com/docs/4.2/lifecycle

짧은 답변 : 경로 응답 (즉, 문자열,보기)를 반환 할 수 있습니다, 또는뿐만 아니라 응답을 반환 할 수 있습니다 컨트롤러를로드 할 수 있습니다. 경로에서 직접보기를 반환하는 것은 좋지 않지만 경우에 따라 유용 할 수 있습니다.

4

Laravel은 의도적으로 유연성을 위해 이것을 가능하게합니다. 즉, 대부분의 경우 컨트롤러가보기 응답을 반환하도록 할 수 있습니다.

이러한 유연성이 편리한 경우가 있습니다. 일부 디버그 데이터를 출력하는 경로를 신속하게 설정하고자한다고 가정 해보십시오. 이 경우 컨트롤러 정의 및 뷰 템플릿을 작성하면 라우트 정의에서 직접 출력 할 수 있습니다. 다른 경우도 있지만 경로 -> 컨트롤러 ->보기 메소드가 대부분의 유스 케이스를 처리합니다.

2

Laravel 응용 프로그램에 요청을하면 요청은 경로 일치를 거치고 일치하는 경로가 있으면 해당 프레임 워크는 해당 경로에 등록 된 처리기/동작을 호출합니다. 따라서 실제로는 handler이고 핸들러는 callable 인 수 있습니다. 그래서, 당신은이 같은 경로를 선언 할 때 :

Route::get('url', 'action'); 

프레임 워크는 요청 된 경로를 검색하고 사용할 수있는 경우 Route Collection 다음은/전화/호출하는 액션/핸들러를 실행하고 핸들러가 응답을 반환에 (View). 그래서, 이런 일이 일어난다면 요. 이 경우

Route::get('url', 'myHandler'); 

function myHandler() 
{ 
    //... 
    return View::make(...); 
} 

은 실행 범위는 기능이며이 클래스 메소드의 경우 그 다야 범위는 다르지만, 두 경우 모두에서 핸들러가 응답을 반환하는 컨트롤을하고있다. 따라서 명명 된 함수에서 View을 반환 할 수는 있지만 익명 함수에서도 View을 반환 할 수 있습니다. 실행 범위에서 무언가 (서비스 클래스와 같은 다른 클래스)에 액세스하거나 사용할 수 있다면 사용할 수 있습니다. 함수와 클래스 메서드의 차이점은 scope입니다. 따라서 가능하고 쉽고 (단일 페이지 또는 작은 응용 프로그램의 경우) 어떤 경우에는 유용하지만 권장 방법이 아니며 좋은 습관도 아닙니다. 익명 함수 대신 클래스를 사용하십시오.

왜 Laravel은 라우트에서 뷰를 렌더링 할 수 있습니까?

그것은 프레임 워크이고 즉, 그것은 많은 도구와 toolbox이고이 (당신이 묻는 질문)은 (프레임 워크의) 유용성의 증가 또 다른 도구입니다. 더 나은 응용 프로그램을 만드는 것은 도구 상자의 작업이 아니지만 도구 상자는 도구와 도구를 사용하여 생산성과 생산성을 높이는 데 도움이됩니다. 따라서 지름길이 있지만 현명한 선택을해야합니다.

관련 문제