亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php反射類的使用及Laravel對反射的使用介紹

2020-03-22 20:16:14
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于php反射類的使用及Laravel對反射的使用介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

前言

PHP的反射類與實例化對象作用相反,實例化是調用封裝類中的方法、成員,而反射類則是拆封類中的所有方法、成員變量,并包括私有方法等。就如“解刨”一樣,我們可以調用任何關鍵字修飾的方法、成員。當然在正常業務中是建議不使用,比較反射類已經摒棄了封裝的概念。

本章講解反射類的使用及Laravel對反射的使用。

反射

反射類是PHP內部類,無需加載即可使用,你可以通過實例化 ReflectionClass 類去使用它。

方法

這里列舉下PHP反射類常用的方法

方法名注釋ReflectionClass::getConstant獲取定義過的一個常量ReflectionClass::getConstants獲取一組常量ReflectionClass::getConstructor獲取類的html' target='_blank'>構造函數ReflectionClass::getDefaultProperties獲取默認屬性ReflectionClass::getDocComment獲取文檔注釋ReflectionClass::getEndLine獲取最后一行的行數ReflectionClass::getFileName獲取定義類的文件名ReflectionClass::getInterfaceNames獲取接口(interface)名稱ReflectionClass::getMethods獲取方法的數組ReflectionClass::getModifiers獲取類的修飾符ReflectionClass::getName獲取類名ReflectionClass::getNamespaceName獲取命名空間的名稱ReflectionClass::getParentClass獲取父類

等等等等.... 所有關于類的方法、屬性及其繼承的父類、實現的接口都可以查詢到。
詳細文檔請參考網址

栗子
 ?php namespace A/B; class Foo { } $function = new /ReflectionClass( stdClass  var_dump($function- inNamespace()); var_dump($function- getName()); var_dump($function- getNamespaceName()); var_dump($function- getShortName()); $function = new /ReflectionClass( A//B//Foo  var_dump($function- inNamespace()); var_dump($function- getName()); var_dump($function- getNamespaceName()); var_dump($function- getShortName());? 

輸出結果

bool(false)string(8) stdClass string(0) string(8) stdClass bool(true)string(7) A/B/Foo string(3) A/B string(3) Foo 
Laravel

Laravel在實現服務容器加載時使用了反射類?,F在我們開啟“解刨”模式

入口文件index.php
$app = require_once __DIR__. /../bootstrap/app.php |--------------------------------------------------------------------------| Run The Application|--------------------------------------------------------------------------| Once we have the application, we can handle the incoming request| through the kernel, and send the associated response back to| the client s browser allowing them to enjoy the creative| and wonderful application we have prepared for them.$kernel = $app- make(Illuminate/Contracts/Http/Kernel::class);$response = $kernel- handle( $request = Illuminate/Http/Request::capture()$response- send();$kernel- terminate($request, $response);

是引用語句發生的下一行調用了make方法。各位很清楚,make方法用于解析類,所有make方法的實現一定是在引用的文件內。

bootstrap/app.php
$app = new Illuminate/Foundation/Application( realpath(__DIR__. /../ ));

laravel開始加載它的核心類,所有的實現從 Illuminate/Foundation/Application 開始。

Illuminate/Foundation/Application
public function make($abstract, array $parameters = []) $abstract = $this- getAlias($abstract); if (isset($this- deferredServices[$abstract]) ! isset($this- instances[$abstract])) { $this- loadDeferredProvider($abstract); return parent::make($abstract, $parameters);}

在核心類中你可能準確的查找到make方法的存在,它加載了服務提供者隨后調用了父類的方法make,要知道作為獨立的模塊 “服務容器”是絕對不能寫在核心類的。懂點設計模式的都很清楚。

Illuminate/Container/Container

以 $api = $this- app- make( HelpSpot/API ,[ id = 為例來講解

// 真正的make方法,它直接調用了resolve繼續去實現make的功能// $abstract = HelpSpot/API public function make($abstract, array $parameters = []) // $abstract = HelpSpot/API  return $this- resolve($abstract, $parameters);protected function resolve($abstract, $parameters = []) // 判斷是否可以合理反射 // $abstract = HelpSpot/API  if ($this- isBuildable($concrete, $abstract)) { // 實例化具體實例 (實際并不是實例化,而是通過反射“解刨”了) $object = $this- build($concrete); } else { $object = $this- make($concrete);public function build($concrete) // $concrete = HelpSpot/API  if ($concrete instanceof Closure) { return $concrete($this, $this- getLastParameterOverride()); // 實例化反射類 $reflector = new ReflectionClass($concrete); // 檢查類是否可實例化 if (! $reflector- isInstantiable()) { return $this- notInstantiable($concrete); $this- buildStack[] = $concrete; // 獲取類的構造函數 $constructor = $reflector- getConstructor(); if (is_null($constructor)) { array_pop($this- buildStack); return new $concrete; $dependencies = $constructor- getParameters(); $instances = $this- resolveDependencies( $dependencies array_pop($this- buildStack); // 從給出的參數創建一個新的類實例。 return $reflector- newInstanceArgs($instances);}

可見一個服務容器就加載成功了。

以上就是php反射類的使用及Laravel對反射的使用介紹的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
yellow中文字幕久久| 另类色图亚洲色图| 成人性教育视频在线观看| 久久夜色精品国产亚洲aⅴ| 久久久久久久一| 久久精品久久久久久国产 免费| 久久久久国产精品www| 国产色综合天天综合网| 亚洲国产精品系列| 欧美性猛交视频| 91免费高清视频| 美日韩丰满少妇在线观看| 成人xxxx视频| 亚洲一区第一页| 青青a在线精品免费观看| 在线播放国产一区二区三区| 欧美一级电影在线| 成人乱人伦精品视频在线观看| 精品久久久久国产| 国产精品久在线观看| 久久亚洲欧美日韩精品专区| 日韩电影大片中文字幕| 国产91免费观看| 黄色精品一区二区| 欧美精品videos另类日本| 在线视频一区二区| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧美中文日韩v在线观看| 久久精品国产成人精品| 亚洲精品电影网在线观看| 亚洲成人精品视频在线观看| 欧美日韩国产成人在线观看| 国产原创欧美精品| 亚洲精品久久久久久久久久久久| 久久av.com| 国产精品一区二区av影院萌芽| 国产日韩欧美黄色| 亚洲精品美女久久| 欧美国产精品人人做人人爱| 日本一本a高清免费不卡| 欧美老少配视频| 在线精品国产欧美| 日韩中文字幕免费看| 亚洲香蕉在线观看| 久久久久久久久久久久av| 色噜噜久久综合伊人一本| 日韩国产激情在线| 亚洲乱码av中文一区二区| 国内伊人久久久久久网站视频| 中文字幕欧美专区| 日韩中文娱乐网| 欧美高清视频在线| 欧美电影在线观看网站| 亚洲人成在线播放| 国产精品久久久久一区二区| 大伊人狠狠躁夜夜躁av一区| 中文字幕欧美精品在线| 欧美电影免费观看高清完整| 成人免费看黄网站| 日韩av综合中文字幕| 美女av一区二区三区| 久久国产一区二区三区| 欧美极品少妇xxxxⅹ喷水| 26uuu另类亚洲欧美日本老年| 92国产精品视频| 久久人91精品久久久久久不卡| 日韩欧美中文在线| 国产精品69av| 日本aⅴ大伊香蕉精品视频| 日韩欧美亚洲国产一区| 久久久精品日本| 国产精自产拍久久久久久| 国产激情综合五月久久| 国产精品自产拍高潮在线观看| 日韩有码在线视频| 国产午夜精品免费一区二区三区| 久久久国产精彩视频美女艺术照福利| 精品亚洲一区二区三区在线观看| 日韩av成人在线| 亚洲国产一区二区三区在线观看| 性欧美xxxx视频在线观看| 国产精品久久久精品| 夜夜狂射影院欧美极品| 欧美性理论片在线观看片免费| 国产精品99久久久久久白浆小说| 国产日韩欧美在线看| 久久久免费高清电视剧观看| 91久久国产综合久久91精品网站| 久久精品国产亚洲精品2020| 国产精品久久不能| 久久影院中文字幕| 久久网福利资源网站| 亚洲xxxxx| 国产精品www色诱视频| 欧美在线激情视频| 亚洲国产免费av| 欧美一级高清免费播放| 国产亚洲视频在线| 久久免费视频网站| 日韩禁在线播放| 久久免费视频在线| 日韩女在线观看| 一区二区福利视频| 欧美午夜女人视频在线| 久久久精品日本| 亚洲美腿欧美激情另类| 91亚洲国产成人久久精品网站| 国产一区二区日韩精品欧美精品| 久久在线免费视频| 亚洲黄色在线观看| 久久久久久国产精品| 国产这里只有精品| 96sao精品视频在线观看| 在线看片第一页欧美| 国产不卡一区二区在线播放| 97视频国产在线| 在线播放日韩精品| 国产精品久久久精品| 久久久久在线观看| 欧美日韩ab片| 欧美性xxxx在线播放| 亚洲视频一区二区三区| 国产欧美日韩中文字幕| 久久精品视频在线| 欧美高清在线视频观看不卡| 亚洲自拍中文字幕| 久久色在线播放| 国产午夜精品一区理论片飘花| 亚洲精品久久久久久久久久久久| 亚洲人成电影在线观看天堂色| 亚洲女性裸体视频| 狠狠躁18三区二区一区| 国产亚洲精品久久久久久牛牛| 性亚洲最疯狂xxxx高清| 亚洲综合成人婷婷小说| 亚洲黄色在线观看| 久久久久久久久综合| 亚洲色图25p| www.国产精品一二区| 国产精品日韩精品| 亚洲国产欧美自拍| 中文在线资源观看视频网站免费不卡| 亚洲iv一区二区三区| 国模gogo一区二区大胆私拍| 欧美性xxxx极品hd欧美风情| 久久久久久中文| 91精品国产综合久久香蕉的用户体验| 在线成人中文字幕| 欧美日韩亚洲一区二区| 亚洲一区二区三区久久| 欧美精品在线视频观看| 国模精品视频一区二区| 国产精品成熟老女人| 欧美性高跟鞋xxxxhd| 亚洲xxxxx| 亚洲 日韩 国产第一| 久久久天堂国产精品女人| 91深夜福利视频| 国产精品人成电影在线观看| 日韩精品中文字幕在线观看| 久久精品国产免费观看| 欧美裸身视频免费观看| 欧美第一淫aaasss性| 国产成人精品久久二区二区|