$files_to_search = array(); $directories = get_all_dir('blank-theme'); $strings_to_replace = array('theme_name' => array($default_values['theme_name']['default'], $theme_name), 'text_domain' => array($default_values['text_domain']['default'], $text_domain), 'prefix' => array($default_values['prefix']['default'], $prefix), 'author_uri' => array($default_values['author_uri']['default'], $author_uri), 'css_prefix' => array("{$default_values['css_prefix']['default']}-", $css_prefix . '-'), 'js_class_name' => array($default_values['js_class_name']['default'], $js_class_name), 'constant_name' => array($default_values['constant_name']['default'], $constant_name), 'author_name' => array($default_values['author_name']['default'], $author_name), 'theme_decription' => array($default_values['theme_decription']['default'], "Description: {$theme_decription}"), 'more_name' => array('blank theme', $theme_name)); $file_names_to_rename = array('blank-theme', 'blank_theme'); $change_log = array(); foreach ($strings_to_replace as $data) { $search_string = $data[0]; $replace_string = $data[1]; foreach ($directories as $dir_to_search) { //Rename File Names if ($handle = opendir($dir_to_search)) { while (false !== ($fileName = readdir($handle))) { foreach ($file_names_to_rename as $file_prefix) { if (strpos($fileName, $file_prefix) !== false) { $newName = str_replace($file_prefix, $text_domain, $fileName); rename($dir_to_search . $fileName, $dir_to_search . $newName); } } } closedir($handle); } //Change strings $snr = new File_SearchReplace($search_string, $replace_string, $files_to_search, $dir_to_search, true); // 'true' to search subdirectories $snr->doSearch(); $change_log[] = array('search_string' => $search_string, 'replace_string' => $replace_string, 'number_of_occurences' => $snr->getNumOccurences(), 'directory' => $dir_to_search); } } } else { $string_values = $default_values; }
<?php require_once dirname(__FILE__) . '/../bootstrap/unit.php'; $cloneFrom = nbConfig::get('symfony_project-clone_from'); $cloneTo = nbConfig::get('symfony_project-clone_to'); $name = nbConfig::get('symfony_project-clone_name'); $t = new lime_test(5); $t->comment('Symfony Project Clone'); $cmd = new nbSymfonyCloneProjectCommand(); $commandLine = sprintf('%s %s %s', $cloneFrom, $cloneTo, $name); $finder = nbFileFinder::create('any'); $appFiles = $finder->add('*.*')->remove('.')->remove('..')->relative()->in($cloneFrom); $t->ok($cmd->run(new nbCommandLineParser(), $commandLine), 'Symfony project cloned successfully'); $t->ok(file_exists($cloneTo . '/' . $name), 'project is cloned'); //TODO rivedere directory cache e il test in generale 20??? $t->comment('Total files are 46 with cache and log directories'); $clonedAppFiles = $finder->add('*.*')->remove('.')->remove('..')->relative()->in($cloneTo . '/' . $name); $t->is(count($clonedAppFiles), 46, 'All files (cache and log are excluded) are cloned'); $fsr = new File_SearchReplace($name, '', $cloneTo . '/' . $name . '/symfony/config/properties.ini', '', false); $fsr->doSearch(); $t->is($fsr->getNumOccurences(), 1, 'File properties.ini modified'); $fsr = new File_SearchReplace($name, '', $cloneTo . '/' . $name . '/symfony/config/databases.yml', '', false); $fsr->doSearch(); $t->is($fsr->getNumOccurences(), 2, 'File databases.yml modified'); $fileSystem->rmdir($cloneTo . '/' . $name, true);