yii页面到php方法的路径,php – 获取YII中的所有“页面”?

本文介绍如何通过编程方式获取Yii框架中所有控制器及其公共方法对应的URL,以构建XML站点地图。通过反射类,遍历指定目录下的所有PHP文件,从中提取出控制器名称和公开的方法,然后构造URL。这种方法避免了手动列出每个页面,适用于大量视图的情况。
摘要由CSDN通过智能技术生成

我正在尝试创建自己的xml站点地图.一切都已完成,除了我认为最容易的部分.你如何获得网站上所有页面的列表?我在/ site文件夹和其他一些文件夹中有很多视图.有没有办法明确请求他们的URL或可能通过控制器?

我不想使用扩展名

您可以使用反射来遍历所有控制器的所有方法:

Yii::import('application.controllers.*');

$urls = array();

$directory = Yii::getPathOfAlias('application.controllers');

$iterator = new DirectoryIterator($directory);

foreach ($iterator as $fileinfo)

{

if ($fileinfo->isFile() and $fileinfo->getExtension() == 'PHP')

{

$className = substr($fileinfo->getFilename(),-4); //strip extension

$class = new ReflectionClass($className);

foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method)

{

$methodName = $method->getName();

//only take methods that begin with 'action',but skip actions() method

if (strpos($methodName,'action') === 0 and $methodName != 'actions')

{

$controller = lcfirst(substr($className,strrpos($className,'Controller')));

$action = lcfirst(substr($methodName,6));

$urls[] = Yii::app()->createAbsoluteUrl("$controller/$action");

}

}

}

}

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值