diff --git a/src/Composer/Plugin/PluginManager.php b/src/Composer/Plugin/PluginManager.php index 666bbce2a..fcc170223 100644 --- a/src/Composer/Plugin/PluginManager.php +++ b/src/Composer/Plugin/PluginManager.php @@ -190,7 +190,8 @@ class PluginManager $code = str_replace('__FILE__', var_export($path, true), $code); $code = str_replace('__DIR__', var_export(dirname($path), true), $code); $code = str_replace('__CLASS__', var_export($class, true), $code); - eval('?>'.$code); + $code = preg_replace('/^\s*<\?(php)?/i', '', $code, 1); + eval($code); $class .= '_composer_tmp'.self::$classCounter; self::$classCounter++; } diff --git a/tests/Composer/Test/Plugin/Fixtures/plugin-v9/Installer/Plugin.php b/tests/Composer/Test/Plugin/Fixtures/plugin-v9/Installer/Plugin.php new file mode 100644 index 000000000..74e1beb8b --- /dev/null +++ b/tests/Composer/Test/Plugin/Fixtures/plugin-v9/Installer/Plugin.php @@ -0,0 +1,18 @@ +