美文网首页
laravel5.8(四)引入自定义常量文件及公共函数文件

laravel5.8(四)引入自定义常量文件及公共函数文件

作者: camellias__ | 来源:发表于2020-11-11 13:40 被阅读0次

    开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。

    比如网站根目录,或者分页数,或者域名等等。

    那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。

    大概有两种方式:

    1:框架目录下引入(不推荐)

    在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php

    在autoload.php文件中引入。

    这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。

    2:在app目录下引入

    在bootstrap目录下新建常量文件const.php,以及公共函数文件function.php

    在app.php文件中引入:

    // 引入常量文件
    require __DIR__ . '/const.php';
    // 公共函数
    require __DIR__ . '/function.php';
     
    

    只有在app.php引入了,才会全局加载生效。

    Const.php

    <?php
        // 预加载文件目录
        define('STUDENT_DIR', '/xxx/xxxx/xxx/xxx/xxx/xxx/');
        // 域名
        define('DOMAIN','http://xxx.xxxx.net/');
        // 网站根目录
        define('WEB_PATH', '/xx/xx/xxxx/xxx/xxx/');
    

    function.php

    <?php
    // 获取客户端ip
    function get_side_ip($type = 0) {
        $type =  $type ? 1 : 0;
        static $ip = NULL;
        if ($ip !== NULL) return $ip[$type];
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            $pos = array_search('unknown',$arr);
            if(false !== $pos) unset($arr[$pos]);
            $ip = trim($arr[0]);
        }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        }elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        // IP地址合法验证
        $long = ip2long($ip);
        $ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
        return $ip[$type];
    }
      
    //处理方法
    function rmdirr($dirname) {
        if (!file_exists($dirname)) {
            return false;
        }
        if (is_file($dirname) || is_link($dirname)) {
            return unlink($dirname);
        }
        $dir = dir($dirname);
        if ($dir) {
            while (false !== $entry = $dir->read()) {
                if ($entry == '.' || $entry == '..') {
                    continue;
                }
                //递归
                rmdirr($dirname . DIRECTORY_SEPARATOR . $entry);
            }
        }
    }
    

    调用的话,直接使用名字调用就可以了。

    例如:在某模块下的某控制器下的某方法

    Public function xxx()
    {
    echo DOMAIN;
    $ip = get_side_ip();
    echo $ip;
      
    }
     
    

    有好的建议,请在下方输入你的评论。

    原文链接:https://guanchao.site/index/article/articledetail.html?artid=Xof51Oi1G

    相关文章

      网友评论

          本文标题:laravel5.8(四)引入自定义常量文件及公共函数文件

          本文链接:https://www.haomeiwen.com/subject/ejpebktx.html