方法一、加载默认的公共函数文件

在 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]

View Code

方法二、加载自定义的公共函数文件

有的时候当项目当中自定义函数的数量非常多,把所有的函数写在一个文件中可能会难以维护,这个时候可以选择把公共函数文件按照功能或者项目进行拆分,例如在 ./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.phpp($_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 自动加载公共函数文件的方法相关推荐

  1. vim编辑器中cscope自动加载cscope.out文件的方法

    方法一 :vim 插件--autoload_cscope.vim 步骤: 插件下载地址:autoload_cscope.vim 下载之后,讲autoload_cscope.vim放到~/.vim/pl ...

  2. php自动加载基类文件

    原文地址 问题描述 偶尔我们可能不使用php框架写一些代码,会自己写一个框架或者包,这时一般会涉及多个文件. 这种情况下,如果只使用命名空间是不能加载其他需要的文件的. 使用php的 spl_auto ...

  3. android 加载三方so的方法_Android开发教程之动态加载so库文件的方法

    Android开发教程之动态加载so库文件的方法,我想对于静态加载 so 库文件,大家都已经很熟悉了,这里就不多说了.在 Android 开发中调用动态库文件(*.so)都是通过 jni 的方式,而静 ...

  4. php入门篇-------PHPCMS 入口文件,自动加载系统函数和URL规则

    这里主要分析PHPCMS的入口文件和系统自动加载配置文件和系统函数,还有URL的规则: 首先是入口文件分析: index.php 2,框架主文件分析:(这里主要分析加载配置文件和公共函数,还有URL规 ...

  5. php autoload用法,php自动加载__autoload()函数用法

    autoload在php主版本中是自动加载文件的一个方法了我们可以定义许多的文件在目录然后通过autoload加载了,下面来看看autoload函数用法. 在PHP5之后,我们可以通过 __autol ...

  6. JS 网页自动加载js函数

    1法:body 的onload的方法 <body onLoad="clockon(bgclock)"> 2法:window.onload方法 <script de ...

  7. easyui使用ajax获取json文件,easyui 加载本地json 文件的方法

    1.1使用内置的Camara应用程序捕捉图像 一: Camara应用程序包含的意图过滤器 发布时去掉 debug 和 提醒日志,简单无侵入 在 proguard 文件中加入下面代码,让发布时去掉 de ...

  8. thinkphp源码分析(三)—自动加载篇(Loader的分析)

    源码分析 自动加载 系统会调用 Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载. 系统的自动加载由下面 ...

  9. yii2 引入php文件,Yii2中YiiBase自动加载类、引用文件方法分析(autoload)

    本文实例分析了Yii2中YiiBase自动加载类.引用文件的方法.分享给大家供大家参考,具体如下: 在Yii2中这个函数是用来加载类的,没有直接引用文件的相关实现.但是这个也可以用来引用文件. pub ...

最新文章

  1. php如何word转html格式文件,PHP将上传word文件,转化为Html格式,(多种转换方式)
  2. 一台机器同时启动两个tomcat
  3. 缓存穿透、缓存并发、热点缓存之最佳招式
  4. linux select 多路复用机制
  5. 查看/修改Linux时区和时间
  6. Android中的Touch事件处理流程
  7. [js] 使用delete删除数组,其长度会改变吗
  8. c语言中x的n次方怎么表示_线性代数的本质及其在人工智能中的应用
  9. MySQL 优化 —— MySQL 如何使用索引
  10. loadrunner两个报错Error -27492、Error -27778 互斥的问题
  11. Web页面引入思源黑体
  12. win10使用vnc远程树莓派
  13. 位(bit)、字节(Byte)、KB、MB、GB ... 之间的关系
  14. 全同高校名称MySQL数据表
  15. python打印乘法口诀表
  16. Pytorch 学习笔记--to(device)的用法
  17. 手机端,跟pc 链接qq 客服
  18. netgen.5.0.0下载地址与Windows下编译方法
  19. 移动指数加权平均笔记
  20. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(1)- KBOOT架构

热门文章

  1. 不属于计算机网络的资源词,计算机网络应用试题
  2. perl system函数返回值问题
  3. Oracle 判断CLOB字段是否为null
  4. RxSwift PriorityQueue 优先级队列的实现
  5. vue 项目配合zepto的巨坑
  6. 1782: [Usaco2010 Feb]slowdown 慢慢游
  7. 高清壁纸:60款可爱的圣诞节电脑桌面壁纸《中篇》
  8. 11种刷新按钮的方法
  9. C++ 命名方式建议
  10. leetcode 374. Guess Number Higher or Lower 、375. Guess Number Higher or Lower II