PHPackages                             codezm/yaf-framework-rbac-extract-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. codezm/yaf-framework-rbac-extract-tools

ActiveLibrary[Framework](/categories/framework)

codezm/yaf-framework-rbac-extract-tools
=======================================

This is Yaf Framework RABC information extract tools.

14PHP

Since Aug 20Pushed 6y ago1 watchersCompare

[ Source](https://github.com/codezm/yaf-framework-rbac-extract-tools)[ Packagist](https://packagist.org/packages/codezm/yaf-framework-rbac-extract-tools)[ RSS](/packages/codezm-yaf-framework-rbac-extract-tools/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Yaf-Framework-RBAC-Extract-Tools
================================

[](#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',
    )
)
```

#### 默认解析类文件示例

[](#默认解析类文件示例)

```
