2013-01-15 2 views
8

하나의 프로젝트에서 Laravel 3을 사용하고 있으며 기쁨이었습니다. 또한 소스 코드를 여러 번보고 몇 가지 장면에서 어떻게 작동하는지 살펴 보았습니다.Laravel 4 : 어떻게 작동하는지 어떻게 이해할 수 있습니까?

하지만 이제 Laravel 4에서는 어디서부터 시작해야할지, 어떻게 이해해야하는지 모릅니다. 어디에서 Laravel 4의 모든 장면을 배울 수 있습니까?

사례 : DB::insert()이 삽입 된 행의 ID를 반환하는지 확인하고 싶습니다. 그래서 나는 찾기 시작했다. 1. DB를 "캡슐화"하는 Illuminate \ Support \ Facades \ Facade 클래스를 찾았습니다. 2. resolveFacadeInstance 함수가 호출 된 후 이러한 배열을 인쇄하려고했지만 컴퓨터가 중단됩니다. - /. 그리고 이것이 내가 이해하지 못하는 더 많은 수업으로 이어질 것이라고 확신합니다.

Laravel 4의 내부 동작을 학습 할 수있는 방법이 있습니까? 흔적을 쌓을 수 있습니까?

+1

는 가까운 미래에 도움이 될 수 있습니다 : http://area51.stackexchange.com/proposals/46607/laravel – Kriem

+2

삭제 제안 ... – Tebe

답변

14

facade 클래스는 정적 인 것처럼 메서드를 호출 할 수 있도록하는 필터 클래스입니다. 외관 매핑에 대한 은 여기 : http://laravel.com/docs/facades#facade-class-reference

출발점이 완전히 laravel의 내부 - 동작을에서 시작해야 이해하기 :

/public/index.php 

당신은 프로그램의 논리를 따를 수, 즉 start.php가 필요 알았어, 여기에서 발견되는 "응용 프로그램"의 인스턴스를로드하는 :

/vendor/laravel/framework/src/Illuminate/Foundation/Application.php 
+0

음, 훨씬 아니지만 그것은이다 그 시작 : –

1

는 현재 Laravel 4의 초기 문서에서 확인할 수 있습니다 : http://four.laravel.com/을 - 당신에게 좋은 출발점을 제공한다고

+1

입니다 Laravel을 사용하는 방법에 대한 문서, 내부 작업에 대한 문서는 아닙니다. –

1

실제 Laravel 4 코드는 파일에 잘 설명되어 있습니다. 내부 작동을 이해하려면 소스 코드 파일을 열고 노트를 읽으십시오. 예를 들어, 나는 /vendor/laravel/framework/src/Illuminate/Foundation/Application.php에서 DB :: insert() 코드를 조회했다.

/** 
* Run an insert statement against the database. 
* 
* @param string $query 
* @param array $bindings 
* @return bool 
*/ 
public function insert($query, $bindings = array()) 
{ 
    return $this->statement($query, $bindings); 
} 

좋아, 그래서 이것은 내가 동일한 코드/클래스의 기능 문을 검색 그래서 문 함수를 호출 :

/** 
* Execute an SQL statement and return the boolean result. 
* 
* @param string $query 
* @param array $bindings 
* @return bool 
*/ 
public function statement($query, $bindings = array()) 
{ 
    return $this->run($query, $bindings, function($me, $query, $bindings) 
    { 
     if ($me->pretending()) return true; 

     $bindings = $me->prepareBindings($bindings); 

     return $me->getPdo()->prepare($query)->execute($bindings); 
    }); 
} 

우리는 지금이 의견에 따라 부울 결과를 반환하는 것을 볼 수 있습니다 코드 위.

4

This Tuts+ video은 실제로 어떤 클래스가 작업을하는지 알아내는 몇 가지 방법을 보여줍니다. 당신이 Laravel 3 this article에서 오는 경우

예컨대 :

$root = get_class(DB::getFacadeRoot()); 
var_dump($root); 
0

당신을위한 것입니다. 그 후에 해당 시리즈의 other tutorials을 읽어야합니다.

저자의 노트 :

이 문서에서는이 변경 사항의 전부는 아닙니다 마음 에서 버전 3과 향후 버전 4 곰 사이 Laravel에 중요한 변경 사항 중 일부를 간략하게 설명한다. Laravel 4의 출시가 가까워 질수록 이 문서가 최신으로 유지됩니다. Laravel 4에 문제가있는 경우 Freenode의 #laravel으로 이동하시기 바랍니다. 현재로서는 에 포럼에 도움말 항목을 게시하지 않도록 요청하는 사람이 있습니다.