ThinkPHP 3.2.3 自动加载公共函数文件的方法
方法一、加载默认的公共函数文件
在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php),即默认的公共函数文件为 ./Application/Common/Common/function.php。
例如,在 ./Application/Common/Common 下新建 function.php,自定义一个格式化的函数
<?php
//格式化输出
function p($var) {
dump($var, true, null, 0);
}
在控制器 ./Application/Home/Controller/IndexController.class.php 中新建方法:
public function test_function() {
p($_SERVER);
}
打印结果:
Array
(
[REDIRECT_SCRIPT_URL] => /Home/Index/test_function
[REDIRECT_SCRIPT_URI] => http://127.0.0.100/Home/Index/test_function
[REDIRECT_STATUS] => 200
[SCRIPT_URL] => /Home/Index/test_function
[SCRIPT_URI] => http://127.0.0.100/Home/Index/test_function
[HTTP_HOST] => 127.0.0.100
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_COOKIE] => thinkphp_show_page_trace=0|1; PHPSESSID=qk6bahlmiqj8b52o309dl813b5; thinkphp_show_page_trace=0|1
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => max-age=0
[PATH] => C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\TortoiseSVN\bin;d:\Program Files\Subversion\bin;
[SystemRoot] => C:\windows
[COMSPEC] => C:\windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR] => C:\windows
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.2.21 (Win32) PHP/5.3.10
[SERVER_NAME] => 127.0.0.100
[SERVER_ADDR] => 127.0.0.100
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => D:/practise/php/TPTest
[SERVER_ADMIN] => admin@localhost
[SCRIPT_FILENAME] => D:/practise/php/TPTest/index.php
[REMOTE_PORT] => 56500
[REDIRECT_URL] => /Home/Index/test_function
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /Home/Index/test_function
[SCRIPT_NAME] => /index.php
[PATH_INFO] => Index/test_function
[PATH_TRANSLATED] => redirect:\index.php\Home\Index\test_function\Index\test_function
[PHP_SELF] => /index.php/Home/Index/test_function
[REQUEST_TIME] => 1451725716
) 0.0852s
[ShowPageTrace]
方法二、加载自定义的公共函数文件
有的时候当项目当中自定义函数的数量非常多,把所有的函数写在一个文件中可能会难以维护,这个时候可以选择把公共函数文件按照功能或者项目进行拆分,例如在 ./Application/Common/Common 下新建一个 ifunction.php,此时并不能自动加载该文件。有两种方法可以自动加载该文件:
① 在配置文件 ./Application/Common/Conf/config.php 中加入配置:
'LOAD_EXT_FILE' => 'ifunction',
此时就可以自动加载 ifunction.php 文件了。如果有多个需要自动加载的文件,在配置项的值中以 , 进行分隔。
② 临时加载
在需要使用函数文件的控制器中直接加载:
public function test_function() {
load('Common.ifunction');//实际加载的文件是 ./Application/Common/Common/ifunction.php
p($_SERVER);
}
如果该函数文件位于调用函数的控制器所在的模块下时,例如函数文件为 ./Application/Home/Common/ifunction.php,那么 ./Application/Home/Controller/IndexController.class.php 的某个方法要调用函数文件:
public function test_function() {
load('@.ifunction'); //实际加载的文件是 ./Application/Home/Common/ifunction.php,@表示当前模块
p($_SERVER);
}
ThinkPHP 3.2.3 自动加载公共函数文件的方法的更多相关文章
- ThinkPHP3自动加载公共函数文件
7d 根目录 ├─Application 应用目录 │ ├─Common 公共模块 │ │ ├─Common 公共函数文件目录 │ │ │ ├─index.html │ │ ├─Config 配置文件 ...
- thinkphp学习笔记9—自动加载
原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...
- laravel 自动加载 自定义的文件/辅助函数
需求 在 laravel 中自定义了一些 辅助函数,想要laravel框架自动加载这些函数 实现 将自定义的辅助函数放在helpers.php文件中,如下: 在compsoer.json 的 auto ...
- Eclipse下SpringBoot没有自动加载application.properties文件
Eclipse内创建SpringBoot项目,在java/main/resources文件夹下面创建application.properties配置文件,SpringApplication.run后发 ...
- easyui 加载本地json 文件的方法
easyui 加载本地json 文件的方法 2017年12月15日 17:18:07 vivian_hnd 阅读数 2155 https://blog.csdn.net/vivian_wang07/a ...
- spring boot注解 --@spring-boot-devtools 自动加载修改的文件和类
spriing boot中有一个注解,是自动加载修改后的类或者文件. 使用方法为: spring-boot-devtools=true 需要引入devtools包依赖: <dependency& ...
- 使用jQuery动态加载js脚本文件的方法
动态加载Javascript是一项非常强大且有用的技术.这方面的主题在网上已经讨论了不少,我也经常会在一些个人项目上使用RequireJS和Dojo加载js 它们很强大,但有时候也会得不偿失.如果你使 ...
- 谈谈动态地加载Jquery库文件的方法
有时候,我们可能不会在网页中<script src="jquery.min.js" 来加载 Jquery 库,可能在用户点击某个按钮后,才去加载 Jquery 库. 好处不用 ...
- laravel自动加载公共文件
1. 创建 functions.php 在 app/Common/(目录自己起名字)下新建一个文件 functions.php,在内部补充如下代码: <?php /** 数据返回 * 返回jso ...
随机推荐
- poj2386(简单dfs)
就是求图中有多少个水洼.对图进行dfs遍历,并把是水洼的地方全部标记.然后从下一个是水哇的地方再进行dfs. #include <cstdio> #include <iostream ...
- 【原】iOS学习46之第三方CocoaPods的安装和使用(通用方法)
本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1> CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. ...
- hdu 2160 母猪的故事
Problem Description 话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生活.说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪.不过 ...
- c++实现单向链表
一.问题描述 1.题目内容:集合的并.交和差运算 编写一个能演示执行集合的并.交和差运算的程序. 2.基本要求 由用户输入两组整数分别作为两个集合的元素,由程序计算它们的交.并和差集,并将运算结果输出 ...
- 【HDU】3853 LOOPS
http://acm.hdu.edu.cn/showproblem.php?pid=3853 题意:n×m的格子,起始在(1,1),要求走到(n,m),在每一格(i,j)有三种走法,其中p[i,j,0 ...
- 【Eclipse】修改 编码格式
eclipse 默认编码居然是GBK,js文件默认编码是ISO-....怎么可以这样呢? 都修改成UTF8的方法: 1.windows->Preferences...打开"首选项&qu ...
- 主席树+启发式合并(LT) BZOJ3123
好久没做题了,写道SBT又RE又T 查询:主席树裸题. 修改:对于两个树合并重建小的树. 注意fa[x][i]重新计算时要清空 #include<cstdio> #include<c ...
- Lable得到自定义高度!
方法1(系统):CGSize declabesize = [_questionDecLabel.text boundingRectWithSize:CGSizeMake(CGRectGetWidth( ...
- upload控件上传json文件合并的两种方法
方法一: byte[] byte1 = FileUpload1.FileBytes; byte[] byte2 = FileUpload2.FileBytes; byte[] a1 = Encodin ...
- MongoDB使用操作
一.mongodb常用命令 http://www.cnblogs.com/cxd4321/archive/2011/06/24/2089051.html 二.MongoDB基本使用 http://ww ...