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

简介: 开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。比如网站根目录,或者分页数,或者域名等等。那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。大概有两种方式:1:框架目录下引入(不推荐)在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php在autoload.php文件中引入。这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。2:在app目录下引入在bootstrap目录下新建常量文件

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

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

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

大概有两种方式:

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

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

在autoload.php文件中引入。

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

2:在app目录下引入

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

在app.php文件中引入:

php

复制代码

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

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

Const.php

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

复制代码

<?php
/**
 * @name: 获取客户端ip
 * @author: camellia
 * @date: 2021-12-17 
 */
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];
}
/**
 * @name: 处理方法
 * @author: camellia
 * @date: 2021-12-17 
 */
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);
        }
    }
}

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

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

php

复制代码

Public function xxx()
{
    echo DOMAIN;
    // 调用公共函数库中的函数
    $ip = get_side_ip();
    echo $ip;
}

这里要注意一下,我们自定义的公共函数库的中函数的方法名一定要注意,不要和框架代码中的函数名相同。否则会有问题。

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

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的

目录
相关文章
|
7月前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
56 0
|
5月前
|
缓存 前端开发 JavaScript
Webpack 模块解析:打包原理、构造形式、扣代码补参数和全局导出
Webpack 模块解析:打包原理、构造形式、扣代码补参数和全局导出
259 1
|
8月前
|
JavaScript 前端开发 算法
< 封装公共导出模块:配合element实现提示 >
在 Vue + elementUi 开发中,我们偶尔会遇到需要导出的列表,或者指定位置的导出内容。在一个项目里面是十分常见的,但是由于导出代码有稍微有点长,不方便维护!基于项目开发需求,封装了一个公用的导出模块,模块入口提供了 四个参数,分别是:导出接口地址导出参数对象导出文件名称导出时选择的服务地址(需要配合config文件实现选择功能)。且基于信息安全问题,实现信息提示,当提示点击遵守规则才允许下载文件!
|
8月前
|
JavaScript IDE 编译器
TypeScript中模块路径解析与配置:深入剖析与最佳实践
【4月更文挑战第23天】本文深入探讨了TypeScript中模块路径解析的原理与配置优化,包括相对路径、Node.js模块解析和路径别名。通过配置`baseUrl`、`paths`、`rootDirs`以及避免裸模块名,可以提升开发效率和代码质量。建议使用路径别名增强代码可读性,保持路径结构一致性,并利用IDE插件辅助开发。正确配置能有效降低维护成本,构建高效可维护的代码库。
|
8月前
|
Go
Go语言导出包解密:外部访问你的类型和值
Go语言导出包解密:外部访问你的类型和值
110 0
Go语言之自定义模板,修改模板默认变量符号
Go语言之自定义模板,修改模板默认变量符号
115 0
Go语言之自定义模板,修改模板默认变量符号
typescript72-已有的类型声明文件(第三方库的类型文件)
typescript72-已有的类型声明文件(第三方库的类型文件)
214 0
typescript72-已有的类型声明文件(第三方库的类型文件)
|
JavaScript
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
89 0
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
typescript73-创建自己的类型声明文件(项目内共享类型)
typescript73-创建自己的类型声明文件(项目内共享类型)
101 0
typescript73-创建自己的类型声明文件(项目内共享类型)
typescript71-已有的类型声明文件(内置声明类型文件)
typescript71-已有的类型声明文件(内置声明类型文件)
94 0
typescript71-已有的类型声明文件(内置声明类型文件)

热门文章

最新文章

下一篇
开通oss服务