Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

codezm/yaf-framework-rbac-extract-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

4 Commits

Repository files navigation

Yaf-Framework-RBAC-Extract-Tools

对 PHP 类文件解析,为 RBAC(角色管理) 提供 URI - description 数据。

思想来源

项目需要做 rbac 管理,通过对 URI 分析判断用户是否有权限访问。这个组件算是个工具,可以自动帮我们提取某个 Action URI 及对应释义(前提是你得有备注信息)。 本项目主要以鸟哥的 Yaf 框架做解析处理的,当然其他框架、类文件也均可。

如何安装本组件?

  • composer 自动安装
composer require -o codezm/yaf-framework-rbac-extract-tools:dev-master

如何使用本组件

项目中 tests 文件夹有使用示例。

  1. 首先需要加载类相关的父类文件。
  2. 设置解析类文件目录或者类文件。
  3. parse 将返回解析结果。
  4. 如存在相同类文件可通过 getErrorData() 获取未能解析的文件类,因为类文件需要加载,类文件不允许二次加载。

解析结果示例:

array (
 array (
 'uri' => 'default/index',
 'desc' => '首页 - index',
 'router' => array (
 'm' => '',
 'c' => 'default',
 'a' => 'index',
 ),
 'classDescription' => '首页',
 'methodDescription' => 'index',
 ),
 array (
 'uri' => 'default/test',
 'desc' => '首页 - test',
 'router' => array (
 'm' => '',
 'c' => 'default',
 'a' => 'test',
 ),
 'classDescription' => '首页',
 'methodDescription' => 'test',
 ),
 array (
 'uri' => 'backend/index/index',
 'desc' => '后台主页 - 后台主页',
 'router' => array (
 'm' => 'backend',
 'c' => 'index',
 'a' => 'index',
 ),
 'classDescription' => '后台主页',
 'methodDescription' => '后台主页',
 ),
 array (
 'uri' => 'test/backend_abc/index',
 'desc' => '测试多modules模块 - hello world',
 'router' => array (
 'm' => 'test',
 'c' => 'backend_abc',
 'a' => 'index',
 ),
 'classDescription' => '测试多modules模块',
 'methodDescription' => 'hello world',
 )
)

解析失败结果示例

array (
 array (
 'className' => 'IndexController',
 'path' => '/web/test/webservice/application/modules/Test/controllers/Index.php',
 'existed_path' => '/web/test/webservice/application/modules/Backend/controllers/Index.php',
 )
)

默认解析类文件示例

<?php
/**
 * [CodeZm!] Author CodeZm[codezm@163.com].
 *
 * 解析示例
 * $Id: Test.php 2019年04月25日 12:38:11 codezm $
 */
class TestController extends \Core_BaseCtl {
 /**
 * 首页
 *
 */
 public function IndexAction() {
 }
}

打印结果:

array (
 array (
 'uri' => 'test/index',
 'desc' => '解析示例 - 首页',
 'router' => array (
 'm' => '',
 'c' => 'test',
 'a' => 'index',
 ),
 'classDescription' => '解析示例',
 'methodDescription' => '首页',
 )
)

如果你不是使用示例类文件或者解析结果不如意,可以参考 tests/Custom.php 文件修改正则匹配模式。

About

This is Yaf Framework RABC information extract tools.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /