phramz/composer-repository-model

composer仓库(即`packages.json`)模型构建组件

dev-master 2015-03-18 10:51 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:18:47 UTC


README

Build Status SensioLabsInsight HHVM Status Scrutinizer Code Quality

composer仓库(即packages.json)模型构建组件

使用此库,您可以

  • 从任何可通过HTTP访问的仓库(例如Packagist或私有Satis)检索packages.json
  • 序列化或反序列化JSON数据
  • 构建面向对象的模型
  • 浏览模型,包括引用的文件,如includesproviders

此库处于早期alpha版本,请注意,未来的版本中可能会有任何变化!

要求

  • PHP 5.3.3或更高版本

安装

最佳安装方式是使用Composer

  • 编辑您的composer.json并添加一个依赖项
"require": {
    "phramz/composer-repository-model": "dev-master"
}
  • 或让Composer为您完成
php composer.phar require phramz/composer-repository-model

许可协议

此库采用MIT许可协议。有关更多信息,请参阅LICENSE文件。

配置

没有任何配置,直接使用即可。

用法

use Phramz\Component\ComposerRepositoryModel\Service\RepositoryService;

// create an instance of the RepositoryService
$service = new RepositoryService();

// fetch and parse the `packages.json` from `https://packagist.org.cn`
echo $service
    // [packages.json]
    ->buildModel(
        'https://packagist.org.cn',
        'packages.json'
    )
    // [packages.json][provider-includes]
    ->getProviderIncludes()
    // [packages.json][provider-includes][p/provider-archived$%hash%.json]
    ->get('p/provider-2013$%hash%.json')
    // [packages.json][provider-includes][p/provider-archived$0123456789.json][providers]
    ->getProviders()
    // [packages.json][provider-includes][...][providers][p/phramz/doctrine-annotation-scanner$0123456789.json]
    ->get("phramz/doctrine-annotation-scanner")
    // [packages.json][provider-includes][...][providers][...][packages]
    ->getPackages()
    // [packages.json][provider-includes][...][providers][...][packages][phramz/doctrine-annotation-scanner]
    ->first()
    // [packages.json][provider-includes][...][providers][...][packages][...][v1.0.0]
    ->last()
    // [packages.json][provider-includes][...][providers][...][packages][...][v1.0.0][source]
    ->getSource()
    // [packages.json][provider-includes][...][providers][...][packages][...][v1.0.0][source][url]
    ->getUrl();

// ... will output `https://github.com/phramz/doctrine-annotation-scanner.git`

已知问题

  • 目前没有...

贡献

欢迎提交Pull-Requests!如果您打算贡献,请确保

  • 您的PR通过了travis-build测试
  • 您的编码风格遵循PSR-2规范