ホームページ  >  記事  >  バックエンド開発  >  Laravel5のソースコード解説と整理、laravel5のソースコード解説_PHPチュートリアル

Laravel5のソースコード解説と整理、laravel5のソースコード解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:04:511354ブラウズ

Laravel5のソースコード説明と整理、laravel5のソースコード説明

出典: http://yuez.me/laravel-yuan-ma-jie-du/?utm_source=tuicool&utm_medium=referral

目次

  • エントリーファイルindex.php
    • IlluminateFoundationApplication クラス
    • すべての基本的なサービスプロバイダーを挿入します

エントリーファイルindex.php

Laravelベースのアプリケーションでは、WEBサーバーが外部からリクエストを受信すると、アプリケーションのルートディレクトリにあるpublic/index.phpへのリクエストを解析します。

Laravelソースコード解釈-index.php (laravel_index.php)ダウンロード

リーリー リーリー

コードの21行目

リーリー リーリー

によって提供されるクラスローダーが Laravel アプリケーションに導入されたため、Laravel アプリケーションはクラスを手動でロードする必要がなくなりました。そのローディング原理はこの研究の目的ではないので、単にこの方法で使用してください。次のコードが焦点です。 Composer

IlluminateFoundationApplication クラス

このクラスの継承構造は次のとおりです:

Laravel5のソースコード解説と整理、laravel5のソースコード解説_PHPチュートリアル

コードの 35 行目

リーリー リーリー
何が起こっているかを確認するために別のファイルに注意を向けます。

Laravelソースコード解釈-app.php (laravel_app.php)ダウンロード

リーリー リーリー
14 行目を見ると、それがオブジェクトであることがわかります。では、このオブジェクトが作成されたときに何が起こったのでしょうか?

$app是一个 IlluminateFoundationApplication工法から見ると:

IlluminateFoundationApplication コンストラクター

リーリー 関数呼び出しをたどって下を見てください。このコンストラクターでは、
リーリー
メソッドが最初に呼び出されます。

registerBaseBindingsIlluminateFoundationApplication#registerBaseBindings

リーリー このコードは、インスタンス オブジェクトをコンテナーに挿入します。それで、この容器は何ですか?この電話会議から答えを見つける必要があります。
リーリー

static::setInstance($this) 所做的就是将 $this 赋值给自身的 instance 静态变 量。重点看 $this->instance('app', $this)

既存のオブジェクトをコンテナにバインドする機能です。このオブジェクトはコンテナ内で共有されており、キーによって取得できます。

instanceIlluminateContainerContainer#instance

リーリー を振り返って
リーリー

IlluminateFoundationApplication#registerBaseServiceProvidersApplication类中,接下来调用了这个方法 $this->registerBaseServiceProviders()

リーリー リーリー そのうち、EventServiceProvider と RoutingServiceProvider はそれぞれ

  • IlluminateEventsEventServiceProvider
  • IlluminateRoutingRoutingServiceProviderこれらのサービスプロバイダーは
  • にあります。

IlluminateSupportServiceProvider 的子类,它接受一个 Application 对象作为构造函数参数,存储在实例变量 $app

すべての基本的なサービスプロバイダーを挿入します

にあります

IlluminateEventsEventServiceProvider#登録register 方法中,每个ServiceProvider被调用了自身的 register 方法。首先看 看 EventServiceProvider

リーリー リーリー 上記のメソッド本体は、イベントのスケジュールを担当する をコンテナにバインドします。

もう一度見てください IlluminateEventsDispatcher 对象以键 events:

IlluminateRoutingRoutingServiceProvider#登録IlluminateRoutingRoutingServiceProvider

リーリー リーリー

ホームページは、Laravel で最もアクセスされる route 被注册,它是 IlluminateRoutingRouter オブジェクトです。

>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>

その他の良い記事

http://www.cnblogs.com/wish123/p/4756669.html

>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>

www.bkjia.com本当http://www.bkjia.com/PHPjc/1071501.html技術記事 Laravel5のソースコード説明とコンパイル、laravel5のソースコード説明ソース: http://yuez.me/laravel-yuan-ma-jie-du/?utm_source=tuicoolutm_medium=referral ディレクトリエントリファイルindex.php IlluminateFou...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。