PHPackages                             qingbing/php-url-manager - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. qingbing/php-url-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

qingbing/php-url-manager
========================

组件'url-manager' : url的相关解析和操作

1.0.1(6y ago)02595MITPHP

Since Sep 25Pushed 6y agoCompare

[ Source](https://github.com/qingbing/php-url-manager)[ Packagist](https://packagist.org/packages/qingbing/php-url-manager)[ Docs](http://www.phpcorner.net)[ RSS](/packages/qingbing-php-url-manager/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (6)Versions (2)Used By (5)

php-url-manager
===============

[](#php-url-manager)

描述
--

[](#描述)

组件'url-manager' : url-pathinfo的相关解析和操作

注意事项
----

[](#注意事项)

- urlManager的参数配置参考 qingbing/php-config 组件
- urlManager 强依赖组建 qingbing/request来获取pathinfo和baseUrl等
- urlManager 的规则配置参考 url-manager.php 示例
- urlManager 的缓存配置为缓存的实例化字符串代码，在实例化时会通过eval来转换，如果规则不缓存，配置为空即可
- 通过 \\UrlManager::getInstance()-&gt;parseUrl() 获取规则下的真实的 route
- 通过 \\UrlManager::getInstance()-&gt;createUrl() 创建规则下新的URL

组件使用
----

[](#组件使用)

```
// 获取 urlManager 实例
$urlManager = UrlManager::getInstance('url-manager');

// 换取 urlRule 下的 pathinfo
$pathinfo = $urlManager->parseUrl();
var_dump($pathinfo);
var_dump($_GET);
var_dump('===================');
```

三级路由
----

[](#三级路由)

### 1. url配置

[](#1-url配置)

```
return [
    'routeVar' => "r", // get 模式下路由的标志
    'urlSuffix' => ".shtml", // path 模式下链接的后缀名
    'showScriptName' => true, // path 创建URL访问链接时是否显示脚本名
    'appendParams' => true, // 参数是否增加在 pathInfo 后
    'cacheInstanceString' => "\Components\FileCache::getInstance('cache-file');", // cache 实例的实例化字符串代码，设置为空表示不缓存规则
    'caseSensitive' => "false", // 链接的地址是否区分大小写
    'urlFormat' => "path", // 路由的显示模式，get和path两种
    'throwNotMatchRule' => true, // 当无匹配的url规则时是否抛出异常
    'rules' => [
        // 两级路由
        [
            'pattern' => '',
            'route' => 'site/index',
//            'defaultParams' => ['area' => 'chengdu'],
        ], [
            'pattern' => '',
            'route' => '/index',
        ], [
            'pattern' => '/add/*',
            'route' => '/add',
        ], [
            'pattern' => '///*',
            'route' => '/',
        ], [
            'pattern' => '//*',
            'route' => '/view',
        ], [
            'pattern' => '/list/*',
            'route' => '/index',
        ], [
            'pattern' => '//*',
            'route' => '/',
        ],

        // 三级路由
        /*[
            'pattern' => '',
            'route' => 'home/default/index',
        ], [
            'pattern' => '',
            'route' => '/default/index',
        ], [
            'pattern' => '/',
            'route' => '//index',
        ], [
            'pattern' => '//add/*',
            'route' => '//add',
        ], [
            'pattern' => '////*',
            'route' => '//',
        ], [
            'pattern' => '///*',
            'route' => '//view',
        ], [
            'pattern' => '//list/*',
            'route' => '//index',
        ], [
            'pattern' => '///*',
            'route' => '//',
        ],*/
    ],
];
```

### 2. 使用方法

[](#2-使用方法)

```
// 创建 URL
$url = $urlManager->createUrl('home/default/index');
var_dump($url);

$url = $urlManager->createUrl('admin/default/index');
var_dump($url);

$url = $urlManager->createUrl('admin/good/add');
var_dump($url);

$url = $urlManager->createUrl('admin/good/add', ['id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('admin/good/delete', ['sex' => 'nv', 'id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('admin/good/edit', ['id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('admin/good/view', ['id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('admin/good/index');
var_dump($url);

$url = $urlManager->createUrl('admin/good/index', ['id' => 5, 'sex' => 'nv']);
var_dump($url);

$url = $urlManager->createUrl('admin/good/list');
var_dump($url);

$url = $urlManager->createUrl('admin/good/list', ['id' => 5, 'sex' => 'nan']);
var_dump($url);

$url = $urlManager->createUrl('admin/site/test', ['id' => 5]);
var_dump($url);
```

二级路由
----

[](#二级路由)

### 1. url配置

[](#1-url配置-1)

```
; URL 的规则 - 二级路由（/）
    'rules' => [
        // 两级路由
        [
            'pattern' => '',
            'route' => 'site/index',
//            'defaultParams' => ['area' => 'chengdu'],
        ], [
            'pattern' => '',
            'route' => '/index',
        ], [
            'pattern' => '/add/*',
            'route' => '/add',
        ], [
            'pattern' => '///*',
            'route' => '/',
        ], [
            'pattern' => '//*',
            'route' => '/view',
        ], [
            'pattern' => '/list/*',
            'route' => '/index',
        ], [
            'pattern' => '//*',
            'route' => '/',
        ],

        // 三级路由
        /*[
            'pattern' => '',
            'route' => 'home/default/index',
        ], [
            'pattern' => '',
            'route' => '/default/index',
        ], [
            'pattern' => '/',
            'route' => '//index',
        ], [
            'pattern' => '//add/*',
            'route' => '//add',
        ], [
            'pattern' => '////*',
            'route' => '//',
        ], [
            'pattern' => '///*',
            'route' => '//view',
        ], [
            'pattern' => '//list/*',
            'route' => '//index',
        ], [
            'pattern' => '///*',
            'route' => '//',
        ],*/
    ],
```

### 2. 使用方法

[](#2-使用方法-1)

```
// 二级创建 URL
$url = $urlManager->createUrl('site/index');
var_dump($url);

$url = $urlManager->createUrl('good/add');
var_dump($url);

$url = $urlManager->createUrl('good/add', ['id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('good/delete', ['sex' => 'nv', 'id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('good/edit', ['id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('good/view', ['id' => 22]);
var_dump($url);

$url = $urlManager->createUrl('good/index');
var_dump($url);

$url = $urlManager->createUrl('good/index', ['id' => 5, 'sex' => 'nv']);
var_dump($url);

$url = $urlManager->createUrl('good/list');
var_dump($url);

$url = $urlManager->createUrl('good/list', ['id' => 5, 'sex' => 'nan']);
var_dump($url);

$url = $urlManager->createUrl('site/test', ['id' => 5]);
var_dump($url);
```

====== 异常代码集合 ======
--------------------

[](#-异常代码集合-)

异常代码格式：1009 - XXX - XX （组件编号 - 文件编号 - 代码内异常）

```
 - 100900101 : "{pathInfo}"找不到对应的URL解析规则，不能确定路由
 - 100900102 : 创建URL时，路由"{route}"找不到对应的规则，请确认路由或规则是否正确

```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2424d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9379d2ee4885074de75faa3fa12970614186826f762df3c4aa0905dc1ff3b513?d=identicon)[qingbing](/maintainers/qingbing)

---

Top Contributors

[![qingbing](https://avatars.githubusercontent.com/u/33932784?v=4)](https://github.com/qingbing "qingbing (7 commits)")

---

Tags

urlphpurlmanagerurl manager

### Embed Badge

![Health badge](/badges/qingbing-php-url-manager/health.svg)

```
[![Health](https://phpackages.com/badges/qingbing-php-url-manager/health.svg)](https://phpackages.com/packages/qingbing-php-url-manager)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
