php 读取数据库json文件路径,ThinkPHP5.1 遍历目录获取json文件渲染栏目

该博客主要介绍了如何进行后台管理系统的公共初始化,包括作者创建的`initialize()`方法,用于加载侧边栏菜单。侧边栏的构建通过读取各模块的`info.json`文件获取`admin_menu`数据,并进行层级遍历和整理。博客还包含了一个具体的`info.json`文件示例,展示了模块信息,如标题、描述、作者和后台菜单结构。
摘要由CSDN通过智能技术生成

公共控制器

/**

* 公共初始化

* @Author 闻子 <270988107@qq.com>

* @Return \think\response\View|void

*/

public function initialize()

{

$this->NavBarlist();

}

/**

* 后台侧边栏

* @Author 闻子 <270988107@qq.com>

*/

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 闻子 <270988107@qq.com>

* @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_"

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值