ThinkPHP3.1.3原始碼分析(三) common.php
common.php 是 ThinkPHP 基礎函式庫 定義的常用的 函式,
特別的帶有ThinkPHP特點的 單字母函式 D(),U(),M(),C() .....
一、示例程式碼
1.獲取模版檔案 T函式
//獲取模版檔案 格式 專案://分組@主題/模組/操作
//function T($template='',$layer='')
$info = parse_url($template);
$file = $info['host'].(isset($info['path'])?$info['path']:'');
$group = isset($info['user'])?$info['user'].'/':(defined('GROUP_NAME')?GROUP_NAME.'/':'');
$app = $info['scheme'];
非常巧妙的 使用parse_url 函式來構造模板檔案格式
2.過濾 I函式
// 全域性引數過濾
array_walk_recursive($input,$_filter);
$data = is_array($data)?array_map($filter,$data):$filter($data); // 引數過濾
$data = filter_var($data,is_int($filter)?$filter:filter_id($filter));
3.區分大小寫的檔案存在判斷 file_exists_case
二、值得說的程式設計小細節:
strip_whitespace() 函式返回已刪除 PHP 註釋以及空白字元的原始碼檔案。
array_change_key_case()
函式將陣列的所有的 KEY 都轉換為大寫或小寫。
相關文章
- ThinkPHP3.1.3原始碼分析(一) 入口檔案分析PHP原始碼
- ThinkPHP3.1.3原始碼分析(五) App.class.phpPHP原始碼APP
- ThinkPHP3.1.3原始碼分析(四) Think.class.phpPHP原始碼
- ThinkPHP3.1.3原始碼分析(二) runtime.phpPHP原始碼
- Retrofit原始碼分析三 原始碼分析原始碼
- preact原始碼分析(三)React原始碼
- Backbone原始碼分析(三)原始碼
- YYCache 原始碼分析(三)原始碼
- 原始碼分析三:OkHttp—CacheInterceptor原始碼HTTP
- 原始碼分析三:OkHttp—CallServerInterceptor原始碼HTTPServer
- 原始碼分析三:OkHttp—RetryAndFollowUpInterceptor原始碼HTTP
- 5.2 spring5原始碼--spring AOP原始碼分析三---切面原始碼分析Spring原始碼
- Vue原始碼分析系列三:renderVue原始碼
- java集合原始碼分析(三):ArrayListJava原始碼
- 原始碼分析三:OkHttp—BridgeInterceptor原始碼HTTP
- 原始碼分析三:OkHttp—ConnectInterceptor原始碼HTTP
- Tinker接入及原始碼分析(三)原始碼
- jQuery原始碼剖析(三) - Callbacks 原理分析jQuery原始碼
- Netty原始碼分析--建立Channel(三)Netty原始碼
- Flutter Dio原始碼分析(三)--深度剖析Flutter原始碼
- gson-plugin深入原始碼分析(三)Plugin原始碼
- weex原始碼分析(三) -- weex工程建立原始碼
- Floyd&Raft的原始碼分析(三)Raft原始碼
- JUnit原始碼分析 (三)——Template Method模式原始碼模式
- 友好 RxJava2.x 原始碼解析(三)zip 原始碼分析RxJava原始碼
- 容器類原始碼解析系列(三)—— HashMap 原始碼分析(最新版)原始碼HashMap
- Android主流三方庫原始碼分析(三、深入理解Glide原始碼)Android原始碼IDE
- Giraph原始碼分析(三)—— 訊息通訊原始碼
- Java IO原始碼分析(三)——PipedOutputStream和PipedInputStreamJava原始碼
- JVM 原始碼分析(三):深入理解 CASJVM原始碼
- MPTCP 原始碼分析(三) 子路徑選擇TCP原始碼
- containerd 原始碼分析:建立 container(三)AI原始碼
- SpringBoot2.0原始碼分析(三):整合RabbitMQ分析Spring Boot原始碼MQ
- 原始碼分析三:OkHttp(1)—總體架構原始碼HTTP架構
- OkHttp 3.7原始碼分析(三)——任務佇列HTTP原始碼佇列
- springMVC原始碼分析--SimpleControllerHandlerAdapter(三)SpringMVC原始碼ControllerAPT
- mapreduce job提交流程原始碼級分析(三)原始碼
- 集合原始碼分析[2]-AbstractList 原始碼分析原始碼