ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。 比如网站根目录,或者分页数,或者域名等等。 那我们如何在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; } ```