xp-forge/uri
Composer 安装命令:
composer require xp-forge/uri
包简介
URIs
README 文档
README
A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
| _____________________|__
/ \ / \
urn:example:animal:ferret:nose
See https://tools.ietf.org/html/rfc3986
Examples
Parsing from a string
The most common case will include constructing URIs from a given input string.
use util\URI; $uri= new URI('https://user:password@localhost:8443/index?sort=name#top'); $uri->isOpaque(); // false - it's a hierarchical URI $uri->scheme(); // "https" $uri->authority(); // util.Authority("localhost", 8443, "user", util.Secret("password")) $uri->host(); // "localhost" $uri->port(); // 8443 $uri->user(); // "user" $uri->password(); // util.Secret("password") $uri->path(); // "index" $uri->query(); // "sort=name" $uri->params(); // util.uri.Parameters("sort=name") $uri->param('sort'); // "name" $uri->fragment(); // "top" $uri->resource(); // "/index?sort=name#top"
Creating or modifying
URI instances are immutable. However, a fluent interface is offered via with() and using(). Both return fresh instances.
use util\URI; $uri= URI::with()->scheme('mailto')->path('timm@example.com')->param('Subject', 'Hello')->create(); $uri->isOpaque(); // true - it's an opaque URI $uri->scheme(); // "mailto" $uri->authority(); // null (string)$uri; // "mailto:timm@example.com?Subject=Hello" $copy= $uri->using()->path('cc@example.com')->create(); (string)$copy; // "mailto:cc@example.com?Subject=Hello"
Resolving URIs
Given http://localhost/home/ as the base URI, you can resolve links in its context using the resolve() method:
use util\URI; $uri= new URI('http://localhost/home/'); $uri->resolve('/index.html'); // util.URI<http://localhost/index.html> $uri->resolve('index.html'); // util.URI<http://localhost/home/index.html> $uri->resolve('?sort=name'); // util.URI<http://localhost/home/?sort=name> $uri->resolve('#top'); // util.URI<http://localhost/home/#top> $uri->resolve('//example.com'); // util.URI<http://example.com> $uri->resolve('https://localhost'); // util.URI<https://localhost>
Filesystem
URIs can point to filesystem paths. Converting between the two is not trivial - you need to handle Windows UNC paths correctly. The URI class' file() and asPath() methods take care of this.
use util\URI; $uri= URI::file('/etc/php.ini'); (string)$uri; // "file:///etc/php.ini" $uri= new URI('file://c:/Windows'); $uri->path(); // "C:/Windows" $uri->asPath(); // io.Path("C:\Windows") $uri= new URI('file://share/file.txt'); $uri->authority(); // util.Authority("share") $uri->path(); // "/file.txt" $uri->asPath(); // io.Path("\\share\file.txt")
xp-forge/uri 适用场景与选型建议
xp-forge/uri 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 225.75k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2017 年 03 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「module」 「xp」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 xp-forge/uri 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 xp-forge/uri 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 xp-forge/uri 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
bootstrap select field module implementing http://silviomoreto.github.io/bootstrap-select/
Yii2 module to manage website content. Kind of a CMS...
Codeurx Modular is simply a package for Laravel to help you create and manage modules.
User Module for the Attogram Framework
Info Module for the Attogram Framework
Contact Form Module for the Attogram Framework
统计信息
- 总下载量: 225.75k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 10
- 依赖项目数: 5
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2017-03-24

