|
楼主 |
发表于 2018-12-23 22:39:10
|
显示全部楼层
本帖最后由 eemengnan 于 2018-12-23 23:06 编辑
既然没有人回答,我就自己摸索好了,今天写了一下,编写了一个library文件。
希望帮到有同样需求的同学。
library文件 afunction.php
PHP复制代码
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Afunction {
// Controllers 主路径 : ci/application/controllers/
protected $ctrPATH = APPPATH .'controllers'.DIRECTORY_SEPARATOR;
// php 扩展名
protected $extNAME = '.php';
public function get_controllers ($path = NULL) {
// $path : 相对路径
if (!is_null($path)) {
$path = $path . DIRECTORY_SEPARATOR; }
// $fullpath : 绝对路径
$fullpath = $this->ctrPATH . $path;
if (is_dir($fullpath)) {
// 子文件数组
$itemArray = array();
// 打开目录
$dir = opendir($fullpath);
while ($item = readdir($dir)) {
// 跳过 . 和 .. 目录
if ($item == '.' OR $item == '..') { continue; }
// 判断文件类型:目录?PHP文件?其他
$filenameArray = explode('.', $item);
if (count($filenameArray) == 1) { // 目录
// 遍历子目录
$this->get_controllers($path.$item);
} elseif ($filenameArray[1] == 'php') { // PHP文件
echo "---> PATH " . $path . " Controler " . $filenameArray[0] . " php <br>";
$a = $this->get_methods($path, $filenameArray[0]);
var_dump($a);
} else { /* 其他文件,不做处理 */ }
}
// 关闭目录
closedir($dir);
}
}
// 获取类文件中的函数名称
public function get_methods ($path = NULL, $classname) {
require_once( $this->ctrPATH . $path . $classname . $this->extNAME );
return get_class_methods($classname);
}
}
复制代码
cotroller 里面调用的函数
PHP复制代码
public function NodeList() {
$this->load->library('Afunction');
$this->afunction->get_controllers();
}
复制代码
|
评分
-
查看全部评分
|