*/ /** * Baza ignorowanych plików synchornizacji */ class stInstallerIgnore { /** * Odczytuje i zwraca listę wyrażeń regularnych, dla pomijanych plików * * @param string $app nazwa aplikacji np. stAppName * @return array(ereg=>(ignore|discard)) discard - odrzuca zawsze, ignore - pomija jesli plik juz istnieje */ static public function getIgnore($app) { $ignore=array(); $file=sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml'; if (file_exists($file)) { $data=sfYaml::load($file); if (! empty($data['ignore'])) { $ignore = $data['ignore']; } } $file=sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'install'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR. $app.DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml'; if (file_exists($file)) { $data=sfYaml::load($file); if (! empty($data['ignore'])) { $ignore = array_merge($ignore, $data['ignore']); } } return $ignore; } /** * Odczytywanie listy wzorców dla plików, które mają zostać zsynchronizowane. * W przypadku ignore_replace pliki te będą trakowane jako ignore jeżeli zostąły zmienione, w przeciwnym wypadku będą napisywane. * * @param string $app Nazwa aplikacji * @return array lista wzorców dla plików */ static public function getIgnoreReplace($app) { $files = array(sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml', sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'install'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml'); $ignoreReplace = array(); foreach($files as $file) { if (file_exists($file)) { $data = sfYaml::load($file); if (isset($data['ignore_replace'])) $ignoreReplace = array_merge($ignoreReplace, $data['ignore_replace']); } } return array_unique($ignoreReplace); } }