From 1201d587e33fe6e9d7de39be1ba6f7c28735e4b8 Mon Sep 17 00:00:00 2001
From: Volodymyr Kublytskyi <vkublytskyi@magento.com>
Date: Tue, 31 May 2016 14:29:23 +0300
Subject: [PATCH] MAGETWO-53713: [GITHUB] The time has come for splat operator
 #4766

- removed usage of class reflection for object instantiation in other places
---
 .../Model/Import/Product/Type/OptionTest.php    |  3 +--
 lib/internal/Magento/Framework/Filter/Input.php | 17 +++++++----------
 .../Unit/Module/I18n/Dictionary/PhraseTest.php  |  6 ++----
 3 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/Type/OptionTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/Type/OptionTest.php
index c4c81329267..1d141e036a2 100644
--- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/Type/OptionTest.php
+++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/Type/OptionTest.php
@@ -289,8 +289,7 @@ class OptionTest extends \Magento\ImportExport\Test\Unit\Model\Import\AbstractIm
         ];
 
         $modelClassName = \Magento\CatalogImportExport\Model\Import\Product\Option::class;
-        $class = new \ReflectionClass($modelClassName);
-        $this->model = $class->newInstanceArgs($modelClassArgs);
+        $this->model = new $modelClassName(...$modelClassArgs);
         // Create model mock with rewritten _getMultiRowFormat method to support test data with the old format.
         $this->modelMock = $this->getMockBuilder($modelClassName)
             ->setConstructorArgs($modelClassArgs)
diff --git a/lib/internal/Magento/Framework/Filter/Input.php b/lib/internal/Magento/Framework/Filter/Input.php
index 3008700b096..83c67cddf4f 100644
--- a/lib/internal/Magento/Framework/Filter/Input.php
+++ b/lib/internal/Magento/Framework/Filter/Input.php
@@ -342,16 +342,13 @@ class Input implements \Zend_Filter_Interface
     {
         $filter = $filterData['zend'];
         if (is_string($filter)) {
-            $class = new \ReflectionClass('Zend_Filter_' . $filter);
-            if ($class->implementsInterface('Zend_Filter_Interface')) {
-                if (isset($filterData['args']) && $class->hasMethod('__construct')) {
-                    $filter = $class->newInstanceArgs($filterData['args']);
-                } else {
-                    $filter = $class->newInstance();
-                }
-            } else {
-                throw new \Exception('Filter is not instance of \Zend_Filter_Interface');
-            }
+            $filterClassName = 'Zend_Filter_' . ucfirst($filter);
+            $filterClassOptions = isset($filterData['args']) ? $filterData['args'] : [];
+            $filter = new $filterClassName(...$filterClassOptions);
+        }
+        
+        if (!$filter instanceof \Zend_Filter_Interface) {
+            throw new \Exception('Filter is not instance of \Zend_Filter_Interface');
         }
         return $filter;
     }
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php
index b04d02b5084..4e4833e8617 100644
--- a/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php
@@ -17,8 +17,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
      */
     public function testPhraseCreation($constructArguments, $getter, $result)
     {
-        $reflectionClass = new \ReflectionClass('Magento\Setup\Module\I18n\Dictionary\Phrase');
-        $phrase = $reflectionClass->newInstanceArgs($constructArguments);
+        $phrase = new Phrase(...$constructArguments);
         $this->assertEquals($result, $phrase->{$getter}());
     }
 
@@ -58,8 +57,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
     {
         $this->setExpectedException('DomainException', $message);
 
-        $reflectionClass = new \ReflectionClass('Magento\Setup\Module\I18n\Dictionary\Phrase');
-        $reflectionClass->newInstanceArgs($constructArguments);
+        new Phrase(...$constructArguments);
     }
 
     /**
-- 
GitLab