Symfony2获取web目录绝对路径、相对路径、网址的方法


Posted in PHP onNovember 14, 2016

本文实例讲述了Symfony2获取web目录绝对路径、相对路径、网址的方法。分享给大家供大家参考,具体如下:

对于你的需求,Symfony2通过DIC提供了kernel服务,以及request(请求)的封装。

在controller里(在其他地方你可以自行注入kernel,这个服务是HttpKernel库里的一个类:好孩子都喜欢读源代码):

$appRoot = $this->get('kernel')->getRootDir(); // 这里得到的是app目录的绝对路径
// ... 然后你可以再定位到web目录了

web目录的相对路径?相对什么的路径?不管你的实际需求是什么,sf2给你提供了现成的工具,你可以比对获取相对路径:

use Symfony\Component\Filesystem\Filesystem;
$filesystem = new Filesystem();
$filesystem->makePathRelative($endPath, $startPath); // $endPath相对$startPath的相对路径

至于网址,你可以通过request获得:

// 在controll里:
$this->getRequest()->getHost(); // 主机名
$this->getRequest()->getHttpHost(); // 带协议的主机名
$this->getRequest()->getRequestUri(); // 请求的路径

还有很多很多的方法,可点击此处本站下载查看。

希望本文所述对大家基于Symfony2框架的PHP程序设计有所帮助。

PHP 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
PHP Error与Logging函数的深入理解
Jun 03 PHP
PHP的PSR规范中文版
Sep 28 PHP
跟我学Laravel之快速入门
Oct 15 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
laravel 关联关系遍历数组的例子
Oct 10 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 #PHP
PHP实现无限分类的实现方法
Nov 14 #PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 #PHP
PHP编写daemon process 实例详解
Nov 13 #PHP
php版微信小店API二次开发及使用示例
Nov 12 #PHP
PHP Mysqli 常用代码集合
Nov 12 #PHP
PHP版微信小店接口开发实例
Nov 12 #PHP
You might like
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
提示$ is not defined错误分析及解决
2013/04/09 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python 七种邮件内容发送方法实例
2014/04/22 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python subprocess模块详细解读
2018/01/29 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技