开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。
比如网站根目录,或者分页数,或者域名等等。
那我们如何在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
网友评论