1
0
Fork 0

Merge pull request #9008 from Ayesh/strtr-improvements

Replace cascading str_replace() calls with strtr()
pull/9026/head
Jordi Boggiano 2020-06-24 15:06:52 +02:00 committed by GitHub
commit a5e608fb73
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View File

@ -1064,8 +1064,7 @@ INITIALIZER;
$path = preg_replace('{/+}', '/', preg_quote(trim(strtr($path, '\\', '/'), '/'))); $path = preg_replace('{/+}', '/', preg_quote(trim(strtr($path, '\\', '/'), '/')));
// add support for wildcards * and ** // add support for wildcards * and **
$path = str_replace('\\*\\*', '.+?', $path); $path = strtr($path, array('\\*\\*' => '.+?', '\\*' => '[^/]+?'));
$path = str_replace('\\*', '[^/]+?', $path);
// add support for up-level relative paths // add support for up-level relative paths
$updir = null; $updir = null;

View File

@ -196,9 +196,11 @@ class PluginManager
$className = substr($class, $separatorPos + 1); $className = substr($class, $separatorPos + 1);
} }
$code = preg_replace('{^((?:final\s+)?(?:\s*))class\s+('.preg_quote($className).')}mi', '$1class $2_composer_tmp'.self::$classCounter, $code, 1); $code = preg_replace('{^((?:final\s+)?(?:\s*))class\s+('.preg_quote($className).')}mi', '$1class $2_composer_tmp'.self::$classCounter, $code, 1);
$code = str_replace('__FILE__', var_export($path, true), $code); $code = strtr($code, array(
$code = str_replace('__DIR__', var_export(dirname($path), true), $code); '__FILE__' => var_export($path, true),
$code = str_replace('__CLASS__', var_export($class, true), $code); '__DIR__' => var_export(dirname($path), true),
'__CLASS__' => var_export($class, true),
));
$code = preg_replace('/^\s*<\?(php)?/i', '', $code, 1); $code = preg_replace('/^\s*<\?(php)?/i', '', $code, 1);
eval($code); eval($code);
$class .= '_composer_tmp'.self::$classCounter; $class .= '_composer_tmp'.self::$classCounter;