Example #1
0
 /**
  * Compare two package's package.xml, and sort
  * so that dependencies are installed first
  *
  * This is a crude compare, real dependency checking is done on install.
  * The only purpose this serves is to make the command-line
  * order-independent (you can list a dependent package first, and
  * installation occurs in the order required)
  * @access private
  */
 function _sortPkgDeps($p1, $p2)
 {
     $p1name = $p1['info']['package'];
     $p2name = $p2['info']['package'];
     $p1deps = PEAR_Common::_getPkgDeps($p1);
     $p2deps = PEAR_Common::_getPkgDeps($p2);
     if (!count($p1deps) && !count($p2deps)) {
         return 0;
         // order makes no difference
     }
     if (!count($p1deps)) {
         return -1;
         // package 2 has dependencies, package 1 doesn't
     }
     if (!count($p2deps)) {
         return 1;
         // package 2 has dependencies, package 1 doesn't
     }
     // both have dependencies
     if (in_array($p1name, $p2deps)) {
         return -1;
         // put package 1 first
     }
     if (in_array($p2name, $p1deps)) {
         return 1;
         // put package 2 first
     }
     // doesn't really matter if neither depends on the other
     return 0;
 }