composer repository (aka packages.json
) model builder component
With this library you'll be able to
- retrieve a
packages.json
from any repository (e.g. Packagist or a private Satis) reachable via HTTP - serialize or deserialize the json-data
- build up an object-oriented model
- browse through the model, including referenced files like
includes
andproviders
This library is early alpha so keep in mind that anything may change in future releases!
- PHP 5.3.3 or higher
The best way to install is using Composer:
- either edit your
composer.json
any add an requirement
"require": {
"phramz/composer-repository-model": "dev-master"
}
- or let composer do that for you
php composer.phar require phramz/composer-repository-model
This library is licensed under the MIT license. For further information see LICENSE file.
There's no configuration at all, just use it.
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`
echo $service
// [packages.json]
->buildModel(
'https://packagist.org',
'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`
- None, so far ...
Pull-Requests are always welcome! If you're going to contribute please make sure that:
- your PR passes the travis-build
- your coding-style is PSR-2 compliant