PHPackages                             delaynomore/thinkphp-mac-parser - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. delaynomore/thinkphp-mac-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

delaynomore/thinkphp-mac-parser
===============================

URL解析工具，支持模块、控制器、方法的解析

v1.1.0(1y ago)04MITPHPPHP &gt;=7.2.0CI passing

Since Jun 1Pushed 1y agoCompare

[ Source](https://github.com/delay-no-more/thinkphp-mac-parser)[ Packagist](https://packagist.org/packages/delaynomore/thinkphp-mac-parser)[ Docs](https://github.com/delay-no-more/thinkphp-mac-parser)[ RSS](/packages/delaynomore-thinkphp-mac-parser/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (8)Used By (0)

 [![ThinkPHP MAC Parser Logo](.github/assets/logo.png)](.github/assets/logo.png)

ThinkPHP MAC Parser
===================

[](#thinkphp-mac-parser)

 [ ![PHP Tests](https://github.com/delay-no-more/thinkphp-mac-parser/actions/workflows/php-tests.yml/badge.svg) ](https://github.com/delay-no-more/thinkphp-mac-parser/actions/workflows/php-tests.yml) [ ![Code Coverage](https://camo.githubusercontent.com/c0c9e6924a1288c8bca55f75af0c33064fe4fc393b24ea065dfce74c1128b489/68747470733a2f2f636f6465636f762e696f2f67682f64656c61792d6e6f2d6d6f72652f7468696e6b7068702d6d61632d7061727365722f6272616e63682f6d61737465722f67726170682f62616467652e737667) ](https://codecov.io/gh/delay-no-more/thinkphp-mac-parser) [ ![Latest Version](https://camo.githubusercontent.com/cc5bf7f2e0f5fb5dae0dd2142a6a99172dbcafc9a9593824c1aa9fb2c28be2a2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f64656c61796e6f6d6f72652f7468696e6b7068702d6d61632d706172736572) ](https://packagist.org/packages/delaynomore/thinkphp-mac-parser) [ ![Total Downloads](https://camo.githubusercontent.com/3d3b00962b6e8a17cb0e46bad27fbb78462f6783b8c42413e8cad700a8f2062d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f64656c61796e6f6d6f72652f7468696e6b7068702d6d61632d706172736572) ](https://packagist.org/packages/delaynomore/thinkphp-mac-parser) [ ![PHP Version](https://camo.githubusercontent.com/3df54349e86c21215918549f1cfe5fee78fb2aa20fa9755f1725fca0b7f2a809/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f64656c61796e6f6d6f72652f7468696e6b7068702d6d61632d706172736572) ](https://packagist.org/packages/delaynomore/thinkphp-mac-parser) [ ![License](https://camo.githubusercontent.com/88e1dabf4d223df0950e0985948e231325fefca9fa7fe9e446cf8b1c5e9d9e47/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e) ](https://github.com/delay-no-more/thinkphp-mac-parser/blob/master/LICENSE) [ ![Monthly Downloads](https://camo.githubusercontent.com/e3841e07f0b0a0bc9d9d5398c35b6b85b89553d74730a193e607e055074ea1c0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f64656c61796e6f6d6f72652f7468696e6b7068702d6d61632d706172736572) ](https://packagist.org/packages/delaynomore/thinkphp-mac-parser/stats) [ ![Release Date](https://camo.githubusercontent.com/ac0bbe88fcc766da5c6e916fec8797e45dfb26ee47a777fbee64e3e172cf156b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f64656c61792d6e6f2d6d6f72652f7468696e6b7068702d6d61632d706172736572) ](https://github.com/delay-no-more/thinkphp-mac-parser/releases) [ ![Last Commit](https://camo.githubusercontent.com/2a9f488fbc258f8651d167e1ba23cb2b206fb2c29b5b405be857e331fb4772ff/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f64656c61792d6e6f2d6d6f72652f7468696e6b7068702d6d61632d706172736572) ](https://github.com/delay-no-more/thinkphp-mac-parser/commits/master)

ThinkPHP MAC (Module-Action-Controller) 解析器，提供增强的URL解析功能，支持模块、控制器、方法的解析。

📋 项目起因
------

[](#-项目起因)

ThinkPHP (5.0+) 框架内部没有提供从外部URL字符串解析出模块名、控制器和方法的功能。框架的路由绑定类中的模块绑定是通过静态属性实现的，全局生效，仅能解析当前请求路由到的控制器/模块/方法。

对于一些外部参数传入的URL地址（例如跳转URL的判断和分析、URL的鉴权等场景），无法通过简单的方法解析出模块、控制器和方法。本库就是为了解决这一问题而创建的，提供独立的URL解析功能，不依赖ThinkPHP框架的路由绑定机制。

📑 目录
----

[](#-目录)

- [项目起因](#-%E9%A1%B9%E7%9B%AE%E8%B5%B7%E5%9B%A0)
- [功能特点](#-%E5%8A%9F%E8%83%BD%E7%89%B9%E7%82%B9)
- [安装](#-%E5%AE%89%E8%A3%85)
- [快速开始](#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)
    - [基本用法](#%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95)
    - [自定义配置选项](#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E9%80%89%E9%A1%B9)
- [主要方法](#-%E4%B8%BB%E8%A6%81%E6%96%B9%E6%B3%95)
    - [parseMac](#parsemacstring-url-array-options--array)
    - [parseDomain](#parsedomainstring-url-array-rules--string-domainroot--null-array)
    - [parseController](#parsecontrollerstring-url-array-options--array)
- [返回结果说明](#-%E8%BF%94%E5%9B%9E%E7%BB%93%E6%9E%9C%E8%AF%B4%E6%98%8E)
- [实际解析示例](#-%E5%AE%9E%E9%99%85%E8%A7%A3%E6%9E%90%E7%A4%BA%E4%BE%8B)
- [示例](#-%E7%A4%BA%E4%BE%8B)
- [常见问题(FAQ)](#-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98faq)
- [贡献](#-%E8%B4%A1%E7%8C%AE)
    - [参与方式](#%E5%8F%82%E4%B8%8E%E6%96%B9%E5%BC%8F)
    - [开发环境设置](#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E7%BD%AE)
- [许可证](#-%E8%AE%B8%E5%8F%AF%E8%AF%81)

✨ 功能特点
------

[](#-功能特点)

- 解析URL获取模块、控制器、方法
- 支持域名绑定模块（支持多种匹配模式）
- 支持多级控制器解析
- 灵活的命名转换规则
- 支持特殊域名后缀处理

📦 安装
----

[](#-安装)

通过 Composer 安装：

```
composer require delaynomore/thinkphp-mac-parser
```

🚀 快速开始
------

[](#-快速开始)

### 基本用法

[](#基本用法)

```
