/**
* Applies all registered searchAndReplace operations.
*
* @return void
*/
protected function applySearchAndReplaceOperations()
{
foreach (Files::getRecursiveDirectoryGenerator($this->targetPackageData['path'], null, true) as $pathAndFilename) {
$pathInfo = pathinfo($pathAndFilename);
if (!isset($pathInfo['filename'])) {
continue;
}
if (strpos($pathAndFilename, 'Migrations/Code') !== false) {
continue;
}
foreach ($this->operations['searchAndReplace'] as $operation) {
list($search, $replacement, $filter, $regularExpression) = $operation;
if (is_array($filter)) {
if ($filter !== array() && (!isset($pathInfo['extension']) || !in_array($pathInfo['extension'], $filter, true))) {
continue;
}
} elseif (substr($pathAndFilename, -strlen($filter)) !== $filter) {
continue;
}
Tools::searchAndReplace($search, $replacement, $pathAndFilename, $regularExpression);
}
}
}