2016-09-25 8 views
1

루트 클래스 내에서 그룹' 수업.laravel : Route :: group - 여기의 구문을 이해하는 방법. 정적 기능이 없기 때문에 '내가 <code>::</code>이 <code>Route:group</code> 또는 <code>Route:get</code> 내 이해 <code>::</code> 당으로 <p></p>은 정적 방법을 사용하는 데 사용되는 등 코드를 WRT 무엇을 의미하는지 이해할 수 없습니다입니다 laravel에서

Route 클래스를 확인합니다. group 또는 get 등의 정적 메서드는 없습니다. 그래서 이해하는 법.

물론 내 앱을 시작하는 데 필요한 것을 알 필요가 없습니다. 그러나 구문을 이해하는 것은 언제나 좋습니다. 나는 phpstorm을 사용하고 있습니다. 일반적으로 함수와 클래스의 링크를 알아낼 수 있습니다. group 또는 get을 찾으려고 시도했지만 신고하지 않았습니다.

+0

이것은 소스를주의 깊게 보지 않고 사용자를 처음으로 laravel하는 것은 좋은 질문이 아니지만 프레임 워크 전체에서 사용되는 개념이며 구문을보다 구문 적으로 표현하는 데 도움이됩니다. facades로] :) – tam5

답변

3

Route::method()과 같은 것을 사용하면 "외관"이라고 불리는 것을 사용하고 있습니다. Route 클래스가이 컨텍스트의 외관입니다.

Illuminate\Support\Facades\Route을 살펴보면 이라는 정적 메서드 하나가 제공되며이 개체는 router 문자열을 반환합니다. IoC 컨테이너에서 Illuminate\Routing\Router 클래스의 인스턴스를 참조하는 것은이 문자열입니다.

설정하는 동안 Laravel은이 클래스의 인스턴스를 만들고 router 키와 같은 종류로 저장합니다.

Route::get(...) 할 때 Laravel은 facade 접근자를 사용하여 이미 생성 된 Router 클래스의 인스턴스를 찾고 get 메서드를 호출합니다. 동적 프로그래밍을 사용하여이 작업을 수행합니다. 자세한 내용은 Illuminate\Support\Facades\Facade 클래스를 참조하십시오. 특히 __callStatic 메소드가 시작됩니다. Route::get()를 호출 그래서

: 당신은 실제로 Illuminate\Support\Facades\Route::get

  • 그런 방법은 그 클래스에 존재하지 않는, 또는 Facade 클래스는 확장, 그래서 __callStatic 방법은 실행을 호출하고

    • .
    • 기본이되는 Facade 클래스는 __callStatic 방법은 $instance 라우터의 인스턴스입니다 $instance->$method(...$args);를 호출, 당신은 논리를 따르는 경우 static::getFacadeRoot(), 당신에게 마지막으로 Illuminate\Routing\Router
    • 의 인스턴스를 얻을 것이다 호출
    • $methodget$args 무엇을이다 you passed to Route::get(...);
    • Route::get('route', '[email protected]');으로 전화하면 실제로는 Illuminate\Routing\Router의 인스턴스에서 get('route', '[email protected]')을 호출하게됩니다. 공지, 당신은 실제로 정적 메서드를 호출하지 않습니다.
  • +0

    당신은 일반적으로 외관의 몇 가지 쉬운 설명을 줄 수 있습니까. –

    +0

    @SanthoshYedidi Laravel 문서를 사용해 보시지 않겠습니까? https://laravel.com/docs/master/facades – linuxartisan

    +0

    ok. 나는 그것을 공부할 것이다. –