Skip to content
/ PEARX Public

PEAR Channel Library (This library doesn't depend on PEAR)

Notifications You must be signed in to change notification settings

phpbrew/PEARX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7134722 · Apr 20, 2023
Apr 20, 2023
Dec 4, 2019
Apr 18, 2023
Dec 4, 2019
Dec 4, 2019
Nov 8, 2012
Jan 23, 2020
Nov 8, 2012
Apr 20, 2023
Apr 20, 2023
Mar 8, 2013
Mar 8, 2013
May 23, 2012
Mar 23, 2013
May 23, 2012
Dec 29, 2013

Repository files navigation

PEARX

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);
    }

About

PEAR Channel Library (This library doesn't depend on PEAR)

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages