corneltek / pearx
PEAR channel client
Installs: 13 294
Dependents: 1
Suggesters: 0
Security: 0
Stars: 9
Watchers: 11
Forks: 7
Open Issues: 1
Requires
- php: >=5.3.0
- corneltek/curlkit: ^1.0.11
Requires (Dev)
- corneltek/cachekit: ^1
- corneltek/phpunit-testmore: dev-master
- phpunit/phpunit: ^4.8||^5.7
This package is auto-updated.
Last update: 2024-10-20 17:53:17 UTC
README
PEARX - A Non-PEAR-Dependent PEAR library for PHP 5.3 (PSR-0 compliance)
Features:
- Package XML parser.
- Package XML builder.
- Package XML installer.
- Faster than the original PEAR code.
- Can run without PEAR dependency.
- Support Cache.
- PSR-0 compliance.
Install
$ git clone https://github.com/phpbrew/PEARX.git
$ cd PEARX
$ onion bundle
$ sudo pear install -f package.xml
Synopsis
Channel operations:
use CacheKit\FileSystemCache; $channel = new PEARX\Channel($host); // find package from the remote pear host $package = $channel->findPackage('PEAR'); // traverse pear channel categories $categories = $channel->getCategories(); foreach( $categories as $category ) { // $category->name // $category->infoUrl $packages = $category->getPackages(); foreach( $packages as $package ) { $package->name; $package->summary; $package->desc; $package->channel; $package->license; $package->deps; $package->releases; $package->stable; // version string $package->alpha; // version string $package->latest; // version string $stability = $package->getRelease('0.0.1'); } }
To use PEARX with Cache and CurlDownlaoder
<?php $cache = new CacheKit\FileSystemCache(array( 'expiry' => 60 * 30, // 30 minutes 'cache_dir' => '/tmp/cache', )); $d = new CurlDownloader; $d->setProgressHandler( new \CurlKit\ProgressBar ); $channel = new PEARX\Channel($host, array( 'cache' => $cache, 'downloader' => $d, ));
Parsing Package XML:
$parser = new PEARX\PackageXml\Parser; $package = $parser->parse($file); ok($package->getName()); ok($package->getChannel()); ok($package->getDate()); ok($package->getTime()); ok($package->getDateTime() ); /* ContentFile objects */ $contents = $package->getContents(); ok($contents); foreach( $contents as $content ) { ok($content->file); ok($content->role); } $filelist = $package->getInstallFileList(); foreach( $filelist as $install ) { ok($install->from); ok($install->to); }