• 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:windowssystem32;C:windows;C:windowsSystem32Wbem;C:windowsSystem32WindowsPowerShellv1.0;D:Program FilesTortoiseSVNin;d:Program FilesSubversionin;
        [SystemRoot] => C:windows
        [COMSPEC] => C:windowssystem32cmd.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.phpHomeIndex	est_functionIndex	est_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.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);
        }
  • 相关阅读:
    深入浅出Redis(三)高级特性:管道
    CxImage的编译及简单使用举例
    [Zlib]_[0基础]_[使用zlib库压缩文件]
    java 实现打印当前月份的日历
    hdu 5087 Revenge of LIS II ( LIS ,第二长子序列)
    spring理解一
    poj 3181 Dollar Dayz (整数划分问题---递归+DP)
    android键盘事件
    Linux编程环境介绍(2) -- shell(Bash) 介绍
    iphone开发中数据持久化之——嵌入式SQLite(三)
  • 原文地址:https://www.cnblogs.com/dee0912/p/5095358.html
Copyright © 2020-2023  润新知