一、应用场景:
当需要引入第三方路径,而通过传统的’./’或者’../’无法准确定位的时候,我们需要能直接获取项目所在网站的根目录,然后根据根目录找到我们需要引入的第三方包。
二、例子
首先声明,博主用的是laravel5.2版本
$url1 = base_path();
$url2 = app_path();
$url3 = public_path();
$url4 = config_path();
$url5 = storage_path();
//$url6 = database_path();
echo $url1.'<br>';
echo $url2.'<br>';
echo $url3.'<br>';
echo $url4.'<br>';
echo $url5.'<br>';
// dd($url6);
以上就是laravel自带的一些内置路径函数。这里有个database_path(),我在框架中没打印出来,但是在其他版本的laravel中就打印出来了,很奇怪。
以下是打印结果:
//本地的根目录就在D:\phpStudy\WWW下
D:\phpStudy\WWW\pzapp
D:\phpStudy\WWW\pzapp\app
D:\phpStudy\WWW\pzapp\public
D:\phpStudy\WWW\pzapp\config
D:\phpStudy\WWW\pzapp\storage
这样对比下来就一目了然了
三、解释
app_path()
app_path函数返回app目录的绝对路径:
path=apppath();你还可以使用apppath函数为相对于app目录的给定文件生成绝对路径:
path = app_path(‘Http/Controllers/Controller.php’);
base_path()
base_path函数返回项目根目录的绝对路径:
path=basepath();你还可以使用basepath函数为相对于应用目录的给定文件生成绝对路径:
path = base_path(‘vendor/bin’);
config_path()
config_path函数返回应用配置目录的绝对路径:
path=configpath();databasepath()databasepath函数返回应用数据库目录的绝对路径:
path = database_path();
public_path()
public_path函数返回public目录的绝对路径:
path=publicpath();storagepath()storagepath函数返回storage目录的绝对路径:
path = storage_path();
还可以使用storage_path函数生成相对于storage目录的给定文件的绝对路径:
$path = storage_path(‘app/file.txt’);
laravel关于内置路径函数的源码位置:
大家可以自己去源码部分看一看
四、我应用到这些函数的地方
require_once(base_path() . '/app/Helpers/Oss/autoload.php');
这边是引用阿里对象存储OSS的部分。先用base_path()获取项目的根目录,然后拼接之后的路径’/app/Helpers/Oss/autoload.php’部分。这样就成功的把文件引进来了。
end