laravel 中关于Request facades的一个问题
Jun 06, 2016 pm 08:24 PM
看了一些laravel中facades的一些文档,大致有些了解,但有一点问题想请教大家
app.php的aliasse中
<code>'Request' => 'Illuminate\Support\Facades\Request',</code>
我是这样理解的,相当于运行了vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php,主要语句就是其中的一句
<code>protected static function getFacadeAccessor() { return 'request'; } </code>
要使这个facades起作用,还要绑定到服务提供者,也就是要执行App::bind()
这个函数,但查了一遍代码,没发现哪里出现过。
请问这个facades绑定到服务提供者的代码在哪里,或者说是其它的实现方式。谢谢!
回复内容:
看了一些laravel中facades的一些文档,大致有些了解,但有一点问题想请教大家
app.php的aliasse中
<code>'Request' => 'Illuminate\Support\Facades\Request',</code>
我是这样理解的,相当于运行了vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php,主要语句就是其中的一句
<code>protected static function getFacadeAccessor() { return 'request'; } </code>
要使这个facades起作用,还要绑定到服务提供者,也就是要执行App::bind()
这个函数,但查了一遍代码,没发现哪里出现过。
请问这个facades绑定到服务提供者的代码在哪里,或者说是其它的实现方式。谢谢!
相关代码都在同一个文件夹下的Facade类里面
粗看了一下 应该是resolveFacadeInstance把全局容器中的变量绑定到这里的作为对象缓存的静态成员resolvedInstance中的
__callStatic->getFacadeRoot->resolveFacadeInstance&getFacadeAccessor
是不是在public/index.php中直接使用了?
Illuminate/Foundation/Application.php
Facades 只是提供个快速访问的代理,注册并不在这里。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
