/** * Create a dependency tree like so: * * P1 -> P2 * * P2 -> P3 * * P3 -> P4 * * P4-1.0.0 -> P1 <= 1.2.0 * P4-1.1.0 -> P1 * * and P1 1.3.0 exists */ require __DIR__ . '/../InternetMaker.php'; $maker = new InternetMaker(__DIR__); $pf = $maker->getPassablePf('P1', '1.2.0'); $pf->dependencies['required']->package['pear2.php.net/P2']->save(); $pf->files['glooby1'] = array('role' => 'php'); $maker->makePackage($pf); $pf->version['release'] = '1.3.0'; $maker->makePackage($pf); $pf = $maker->getPassablePf('P2', '1.0.0'); $pf->dependencies['required']->package['pear2.php.net/P3']->save(); $pf->files['glooby2'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P3', '1.0.0'); $pf->dependencies['required']->package['pear2.php.net/P4']->save(); $pf->files['glooby3'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P4', '1.0.0');
<?php /** * Create a dependency tree like so: * * P1-1.0.0 * P1-1.1.0RC1 * * P2 -> P3 * * P3 -> P1 */ require __DIR__ . '/../InternetMaker.php'; $maker = new InternetMaker(__DIR__); $pf = $maker->getPassablePf('P1', '1.0.0'); $pf->files['glooby1'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P1', '1.1.0RC1', 'beta'); $pf->files['glooby1'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P2', '1.0.0'); $pf->dependencies['required']->package['pear2.php.net/P3']->save(); $pf->files['glooby2'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P3', '1.0.0'); $pf->dependencies['required']->package['pear2.php.net/P1']->save(); $pf->files['glooby3'] = array('role' => 'php'); $maker->makePackage($pf);
* * P3 * * P4 -> P2 != 1.2.3 * * P5 * * This causes a conflict when P1 and P4 are installed that must resolve to installing: * * P1 * P2 1.2.2 * P3 * P4 */ require __DIR__ . '/../InternetMaker.php'; $maker = new InternetMaker(__DIR__); $cat = PEAR2\SimpleChannelServer\Categories::create('Category 1', 'First Category')->create('Category 2', 'Second Category'); $cat->link('P1', 'Category 1'); $cat->link('P2', 'Category 2'); $cat->link('P3', 'Category 1'); $cat->link('P4', 'Category 2'); $cat->link('P5', 'Category 1'); $pf = $maker->getPassablePf('P1', '1.0.0'); $pf->dependencies['required']->package['pear2.php.net/P2']->min('1.2.0'); $pf->files['glooby1'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P2', '0.9.0', 'beta'); $pf->files['glooby2'] = array('role' => 'php'); $maker->makePackage($pf); $pf = $maker->getPassablePf('P2', '1.2.2'); $pf->dependencies['required']->package['pear2.php.net/P3']->save();