ThinkPHP5.1 遍历目录获取json文件渲染栏目

公共控制器

    /**
     * 公共初始化
     * @Author 闻子 <[email protected]>
     * @Return \think\response\View|void
     */
    public function initialize()
    {
        $this->NavBarlist();
    }

    /**
     * 后台侧边栏
     * @Author 闻子 <[email protected]>
     */
    private function NavBarlist()
    {
        $modulesList = getModulesCatalog(Env::get('app_path'));
        $labels = [];
        $jsonData = [];
        foreach ($modulesList as $k=>$v) {
            $modulesUrl = Env::get('app_path') . $v . '\info.json';
            $jsonData[] = json_decode(file_get_contents($modulesUrl),true);
        }
        foreach ($jsonData as $key => $value) {
            if (!empty($value['admin_menu'])) {
                $labels[] = $jsonData[$key]['admin_menu'];
            }
        }
        foreach ($labels as $key => $item) {
            foreach($item as $k => $v){
                $arr[] = $v;
            }
        }
        $this->assign('NavBarlist',$arr);
    }

公共文件common

/**
 * 获取模块目录
 * @Author 闻子 <[email protected]>
 * @Param $dir
 * @Return array
 */
function getModulesCatalog($dir)
{
    $dirArray[] = NULL;
    if (false != ($handle = opendir($dir))) {
        $i = 0;
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != ".." && $file != ".htaccess" && $file != "common" && !strpos($file, ".")) {
                $dirArray[$i] = $file;
                $i++;
            }
        }
        closedir($handle);
    }
    return $dirArray;
}

json文件

{
  "name": "admin",
  "title": "后台",
  "description": "一款基础后台模块",
  "author": "Wz",
  "version": "1.0.0",
  "is_module": 1,
  "is_admin": 1,
  "admin_menu": [
    {
      "title": "仪表盘",
      "url": "admin/index/index",
      "icon": "layui-icon-dashboard",
      "is_status": 1
    },
    {
      "title": "模块管理",
      "url": "",
      "icon": "layui-icon-dashboard",
      "is_status": 1,
      "menu_list": [
        {
          "title": "模块列表",
          "url": "admin/modules/index",
          "is_status": 1
        }
      ]
    }
  ],
  "database_prefix": "wz_"
}

你可能感兴趣的:(ThinkPHP5.1 遍历目录获取json文件渲染栏目)