我正在尝试创建自己的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");
}
}
}
}
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。