php – 获取YII中的所有“页面”?
发布时间:2020-12-13 13:34:47 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试创建自己的xml站点地图.一切都已完成,除了我认为最容易的部分.你如何获得网站上所有页面的列表?我在/ site文件夹和其他一些文件夹中有很多视图.有没有办法明确请求他们的URL或可能通过控制器? 我不想使用扩展名 您可以使用反射来遍历所有控制器
我正在尝试创建自己的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"); } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |