gravitymedia/uri
最新稳定版本:v0.2.0
Composer 安装命令:
composer require gravitymedia/uri
包简介
A PHP library for generating RFC 3986 compliant uniform resource identifiers (URI).
README 文档
README
A PHP library for generating RFC 3986 compliant uniform resource identifiers (URI).
Requirements
This library has the following requirements:
- PHP 5.6+
Installation
Install Composer in your project:
$ curl -s https://getcomposer.org/installer | php
Require the package via Composer:
$ php composer.phar require gravitymedia/uri
Usage
This example illustrates te basic usage of an URI object.
// require autoloader require 'vendor/autoload.php'; // import classes use GravityMedia\Uri\Uri; // create URI object from string $uri = Uri::fromString('http://username:password@example.com:8080/this/is/a/path?argument=value#my_fragment'); // dump scheme var_dump($uri->getScheme()); // string(4) "http" // dump authority var_dump($uri->getAuthority()); // string(29) "username:password@example.com" // dump user info var_dump($uri->getUserInfo()); // string(17) "username:password" // dump host var_dump($uri->getHost()); // string(11) "example.com" // dump port var_dump($uri->getPort()); // int(8080) // dump path var_dump($uri->getPath()); // string(15) "/this/is/a/path" // dump argument var_dump($uri->getQuery()); // string(14) "argument=value" // dump fragment var_dump($uri->getFragment()); // string(11) "my_fragment" // remove path and remove fragment $uri = $uri->withPath('')->withFragment(''); // dump URI var_dump($uri->toString()); // string(56) "http://username:password@example.com:8080?argument=value"
The URI also supports URN syntax.
// require autoloader require 'vendor/autoload.php'; // import classes use GravityMedia\Uri\Uri; // create URI object from string $uri = Uri::fromString('urn:example:animal:ferret:nose'); // dump scheme var_dump($uri->getScheme()); // string(3) "urn" // dump path var_dump($uri->getPath()); // string(26) "example:animal:ferret:nose"
Use the SchemeRegistry to support additional schemes and normalize the the URI string.
// require autoloader require 'vendor/autoload.php'; // import classes use GravityMedia\Uri\SchemeRegistry; use GravityMedia\Uri\Uri; // register SSH scheme SchemeRegistry::registerSchemes([ 'ssh' => 22, ]); // create URI object from string $uri = Uri::fromString('ssh://git@github.com:22/GravityMedia/Uri.git'); // dump normalized URI var_dump($uri->toString()); // string(41) "ssh://git@github.com/GravityMedia/Uri.git"
The AbstractQuery class allows to define and manipulate the query string.
// require autoloader require 'vendor/autoload.php'; // import classes use GravityMedia\Uri\AbstractQuery; use GravityMedia\Uri\Uri; /** * My query class. */ class MyQuery extends AbstractQuery { /** * The argument. * * @var mixed */ protected $argument; /** * Get argument. * * @return mixed */ public function getArgument() { return $this->argument; } /** * Set argument. * * @param mixed $argument * * @return $this */ public function setArgument($argument) { $this->argument = $argument; return $this; } } // create URI object from string $uri = Uri::fromString('http://example.com?argument=value'); // create my query object from string $query = MyQuery::fromString($uri->getQuery()); // dump array representation of query var_dump($query->toArray()); // array(1) { ["argument"]=> string(5) "value" } // update query argument value var_dump($query->setArgument('new value')->toString()); // string(18) "argument=new+value" // change query $uri = $uri->withQuery($query->toString()); // dump URI var_dump($uri->toString()); // string(37) "http://example.com?argument=new+value"
gravitymedia/uri 适用场景与选型建议
gravitymedia/uri 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 32 次下载、GitHub Stars 达 0, 最近一次更新时间为 2015 年 03 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 gravitymedia/uri 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 gravitymedia/uri 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 32
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-03-08