*/ /** * Pliki i katalogi z PEAR->Downloads install/download * @package stInstallerPlugin */ class stPearDownload { /** * @var $int ilość usuniętych plików */ private $count=0; /** * @var string */ var $download_dir; /** * Konstruktor. */ public function __construct($download_dir='download') { $this->download_dir=sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'install'.DIRECTORY_SEPARATOR.$download_dir; return true; } /** * Zwraca listę pakietów. * @return array */ public function getPackages() { $result=sfFinder::type('dir')->name("st*")->maxdepth(0)->relative()->in($this->download_dir); return $result; } /** * Usuwa wskazany pakiet. * * @param string $package * @return bool */ public function deletePackage($package) { $package_dir = $this->download_dir.DIRECTORY_SEPARATOR.$package; $package_file = $this->download_dir.DIRECTORY_SEPARATOR.$package.'.tgz'; if (! is_dir($package_dir)) return true; $files=sfFinder::type('any')->in($package_dir); $items=array_reverse($files); foreach ($items as $item) { if (is_file($item)) { unlink($item); $this->count++; } elseif (is_dir($item)) { rmdir($item); $this->count++; } else return false; } if (is_dir($package_dir)) rmdir($package_dir); if (is_file($package_file)) unlink($package_file); return true; } /** * Zwraca liczbę usuniętych plików i katalogów. */ public function getCountDeleted() { return $this->count; } }