/** * Initialize PackageFileManager * * @param array $cfg * @return PEAR_PackageFileManager2 */ function init(array $cfg) { extract($cfg); $package = new \PEAR_PackageFileManager2(); $package->setOptions($options); $package->setPackage($name); $package->setSummary($summary); $package->setNotes($notes); $package->setDescription($description); $package->setLicense($license, $licenseUri); $package->setReleaseVersion($version); $package->setAPIVersion($apiVersion); $package->setReleaseStability($stability); $package->setAPIStability($apiStability); foreach ($maintainers as $maintainer) { $package->addMaintainer($maintainer['role'], $maintainer['handle'], $maintainer['name'], $maintainer['email'], $maintainer['active'] ?: 'yes'); } $package->setPackageType($type); if (strpos($type, 'ext') !== false) { $package->setProvidesExtension($name); if (strpos($type, 'extsrc') !== false && isset($configureOptions)) { foreach ($configureOptions as $configureOption) { $package->addConfigureOption($configureOption['name'], $configureOption['prompt'], $configureOption['default']); } } } $package->setPhpDep($phpDep); $package->setPearinstallerDep($pearDep); if (isset($packageDeps)) { foreach ($packageDeps as $packageDeps) { $min = $packageDeps['min'] ?: false; $max = $packageDeps['max'] ?: false; $recommended = $packageDeps['recommended'] ?: false; $exclude = $packageDeps['exclude'] ?: false; $nodefault = $packageDeps['nodefault'] ?: false; $package->addSubpackageDepWithChannel($packageDeps['type'], $packageDeps['name'], $packageDeps['channel'], $min, $max, $recommended, $exclude, $nodefault); } } $package->setChannel($channel); return $package; }