From 759987da62fc0db0045c001248df14624cd8a9ad Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Wed, 1 Jun 2016 09:51:26 +0200 Subject: [PATCH 1/3] Strip out declare strict_types --- src/Composer/Plugin/PluginManager.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Composer/Plugin/PluginManager.php b/src/Composer/Plugin/PluginManager.php index 666bbce2a..f047e4a91 100644 --- a/src/Composer/Plugin/PluginManager.php +++ b/src/Composer/Plugin/PluginManager.php @@ -190,6 +190,7 @@ 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); + $code = preg_replace('/^(\s*<\?(?:php)?\s+)declare\s*\(\s*strict_types\s*=\s*\d+\s*\)\s*;/', '$1', $code); eval('?>'.$code); $class .= '_composer_tmp'.self::$classCounter; self::$classCounter++; From 097003b5bb41e1ffc940253285984677eff167fd Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Wed, 1 Jun 2016 10:00:37 +0200 Subject: [PATCH 2/3] Add test case for strict types declaration --- .../Fixtures/plugin-v9/Installer/Plugin.php | 18 ++++++++++++++++++ .../Plugin/Fixtures/plugin-v9/composer.json | 12 ++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/Composer/Test/Plugin/Fixtures/plugin-v9/Installer/Plugin.php create mode 100644 tests/Composer/Test/Plugin/Fixtures/plugin-v9/composer.json 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 @@ + Date: Wed, 1 Jun 2016 12:32:06 +0200 Subject: [PATCH 3/3] Simplify evaluation of PHP code --- src/Composer/Plugin/PluginManager.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Composer/Plugin/PluginManager.php b/src/Composer/Plugin/PluginManager.php index f047e4a91..fcc170223 100644 --- a/src/Composer/Plugin/PluginManager.php +++ b/src/Composer/Plugin/PluginManager.php @@ -190,8 +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); - $code = preg_replace('/^(\s*<\?(?:php)?\s+)declare\s*\(\s*strict_types\s*=\s*\d+\s*\)\s*;/', '$1', $code); - eval('?>'.$code); + $code = preg_replace('/^\s*<\?(php)?/i', '', $code, 1); + eval($code); $class .= '_composer_tmp'.self::$classCounter; self::$classCounter++; }