8

私は 1 つのプロジェクトで Laravel 3 を使用しています。また、ソース コードを何度か調べて、いくつかのことが舞台裏でどのように機能するかを確認しました。

しかし、Laravel 4 では、どこから始めればよいのか、すべてを理解する方法がわかりません。Laravel 4 の舞台裏はどこで学べますか?

DB::insert()適切な例:が挿入された行の ID を返すかどうかを調べたかったのです。ということで探し始めました。1. DB を「カプセル化」する Illuminate\Support\Facades\Facade クラスを見つけました。2. resolveFacadeInstance 関数が呼び出され、これらの配列を印刷しようとしましたが、コンピューターがハングします:-/。そして、これは私が理解できないより多くのクラスにつながると確信しています.

Laravel 4 の内部の仕組みを学ぼうとする方法はありますか? 多分スタックトレース?

4

5 に答える 5

14

ファサード クラスは、メソッドを静的であるかのように呼び出すことができる単なるフィルター クラスです。ファサードのマッピングについては、http: //laravel.com/docs/facades#facade-class-referenceを参照してください。

laravel の内部動作を完全に理解するための出発点は、次の場所から始める必要があります。

/public/index.php

ここにある「アプリケーション」のインスタンスをロードする start.php が必要であることに注意して、プログラムのロジックに従うことができます。

/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
于 2013-01-15T23:29:30.840 に答える
4

この Tuts+ ビデオでは、実際に作業を行っているクラスを特定する方法をいくつか紹介しています。

例えば:

$root = get_class(DB::getFacadeRoot());
var_dump($root);
于 2013-04-03T13:15:15.000 に答える
1

ここで Laravel 4 の初期のドキュメントを確認できます: http://four.laravel.com/ – これは良い出発点になるはずです。

于 2013-01-16T00:59:04.560 に答える
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);
}

OK、これはステートメント関数を呼び出しているので、同じコード/クラスで関数ステートメントを検索します。

/**
 * 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);
    });
}

これで、コードの上のコメントに基づいてブール値の結果が返されることがわかります。

于 2013-01-22T15:44:25.290 に答える
0

あなたが Laravel 3 から来ているなら、この記事はあなたのためのものです。その後、そのシリーズの他のチュートリアルを読む必要があります。

著者のメモ:

この記事では、バージョン 3 と次のバージョン 4 の間の Laravel のより重要な変更点について概説する必要があります。これがすべての変更点ではないことに注意してください。Laravel 4 のリリースが近づくにつれて、この記事を最新の状態に保ちます。Laravel 4 で問題が発生した場合は、Freenodeの#laravelにジャンプしてください。現時点では、ヘルプ トピックをフォーラムに投稿しないでください。

于 2013-05-07T20:51:36.777 に答える