diff --git a/lib/internal/Magento/Framework/App/ObjectManagerFactory.php b/lib/internal/Magento/Framework/App/ObjectManagerFactory.php index a16795ec6c9a60281b56f0f7f75234baa8ca7cb0..a67304d7986091e03aa4201b2ad513ea533a805c 100644 --- a/lib/internal/Magento/Framework/App/ObjectManagerFactory.php +++ b/lib/internal/Magento/Framework/App/ObjectManagerFactory.php @@ -117,11 +117,10 @@ class ObjectManagerFactory $arguments = array_merge($deploymentConfig->get(), $arguments); $definitionFactory = new \Magento\Framework\ObjectManager\DefinitionFactory( $this->driverPool->getDriver(DriverPool::FILE), - new \Magento\Framework\Serialize\Serializer\Json(), $this->directoryList->getPath(DirectoryList::GENERATION) ); - $definitions = $definitionFactory->createClassDefinition($deploymentConfig->get('definitions')); + $definitions = $definitionFactory->createClassDefinition(); $relations = $definitionFactory->createRelations(); /** @var EnvironmentFactory $envFactory */ @@ -287,33 +286,4 @@ class ObjectManagerFactory } return $configData; } - - /** - * Crete plugin list object - * - * @param \Magento\Framework\ObjectManagerInterface $objectManager - * @param \Magento\Framework\ObjectManager\RelationsInterface $relations - * @param \Magento\Framework\ObjectManager\DefinitionFactory $definitionFactory - * @param \Magento\Framework\ObjectManager\Config\Config $diConfig - * @param \Magento\Framework\ObjectManager\DefinitionInterface $definitions - * @return \Magento\Framework\Interception\PluginList\PluginList - */ - protected function _createPluginList( - \Magento\Framework\ObjectManagerInterface $objectManager, - \Magento\Framework\ObjectManager\RelationsInterface $relations, - \Magento\Framework\ObjectManager\DefinitionFactory $definitionFactory, - \Magento\Framework\ObjectManager\Config\Config $diConfig, - \Magento\Framework\ObjectManager\DefinitionInterface $definitions - ) { - return $objectManager->create( - \Magento\Framework\Interception\PluginList\PluginList::class, - [ - 'relations' => $relations, - 'definitions' => $definitionFactory->createPluginDefinition(), - 'omConfig' => $diConfig, - 'classDefinitions' => $definitions instanceof - \Magento\Framework\ObjectManager\Definition\Compiled ? $definitions : null - ] - ); - } } diff --git a/lib/internal/Magento/Framework/Interception/Definition/Compiled.php b/lib/internal/Magento/Framework/Interception/Definition/Compiled.php deleted file mode 100644 index 6fbe9c99dce8637e8c31b9ce493b5b79c45e62c0..0000000000000000000000000000000000000000 --- a/lib/internal/Magento/Framework/Interception/Definition/Compiled.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * Compiled method plugin definitions. Must be used in production for maximum performance - * - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Framework\Interception\Definition; - -use Magento\Framework\Interception\DefinitionInterface; - -class Compiled implements DefinitionInterface -{ - /** - * List of plugin definitions - * - * @var array - */ - protected $_definitions = []; - - /** - * @param array $definitions - */ - public function __construct(array $definitions) - { - $this->_definitions = $definitions; - } - - /** - * Retrieve list of methods - * - * @param string $type - * @return string[] - */ - public function getMethodList($type) - { - return $this->_definitions[$type]; - } -} diff --git a/lib/internal/Magento/Framework/Interception/Test/Unit/Definition/CompiledTest.php b/lib/internal/Magento/Framework/Interception/Test/Unit/Definition/CompiledTest.php deleted file mode 100644 index a64cd96b62966023daf9d910c58b6a1f526925c6..0000000000000000000000000000000000000000 --- a/lib/internal/Magento/Framework/Interception/Test/Unit/Definition/CompiledTest.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Framework\Interception\Test\Unit\Definition; - -class CompiledTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var array - */ - protected $_definitions = ['type' => 'definitions']; - - /** - * @covers \Magento\Framework\Interception\Definition\Compiled::getMethodList - * @covers \Magento\Framework\Interception\Definition\Compiled::__construct - */ - public function testGetMethodList() - { - $model = new \Magento\Framework\Interception\Definition\Compiled($this->_definitions); - $this->assertEquals('definitions', $model->getMethodList('type')); - } -} diff --git a/lib/internal/Magento/Framework/ObjectManager/DefinitionFactory.php b/lib/internal/Magento/Framework/ObjectManager/DefinitionFactory.php index 7d9c3ea5e0b21fa0a62fef8ce35d2c648387e29c..79d398e3da0792d38f20337cefc3ba1113b56cd4 100644 --- a/lib/internal/Magento/Framework/ObjectManager/DefinitionFactory.php +++ b/lib/internal/Magento/Framework/ObjectManager/DefinitionFactory.php @@ -10,7 +10,6 @@ use Magento\Framework\Interception\Code\Generator as InterceptionGenerator; use Magento\Framework\ObjectManager\Definition\Runtime; use Magento\Framework\ObjectManager\Profiler\Code\Generator as ProfilerGenerator; use Magento\Framework\Serialize\SerializerInterface; -use Magento\Framework\ObjectManager\Definition\Compiled; use Magento\Framework\Code\Generator\Autoloader; /** @@ -44,39 +43,26 @@ class DefinitionFactory /** * @param DriverInterface $filesystemDriver - * @param SerializerInterface $serializer * @param string $generationDir */ public function __construct( DriverInterface $filesystemDriver, - SerializerInterface $serializer, $generationDir ) { $this->_filesystemDriver = $filesystemDriver; - $this->serializer = $serializer; $this->_generationDir = $generationDir; } /** * Create class definitions * - * @param mixed $definitions * @return DefinitionInterface */ - public function createClassDefinition($definitions = false) + public function createClassDefinition() { - if ($definitions) { - if (is_string($definitions)) { - $definitions = $this->_unpack($definitions); - } - $result = new Compiled($definitions); - } else { - $autoloader = new Autoloader($this->getCodeGenerator()); - spl_autoload_register([$autoloader, 'load']); - - $result = new Runtime(); - } - return $result; + $autoloader = new Autoloader($this->getCodeGenerator()); + spl_autoload_register([$autoloader, 'load']); + return new Runtime(); } /** @@ -99,17 +85,6 @@ class DefinitionFactory return new \Magento\Framework\ObjectManager\Relations\Runtime(); } - /** - * Un-compress definitions - * - * @param string $definitions - * @return mixed - */ - protected function _unpack($definitions) - { - return $this->serializer->unserialize($definitions); - } - /** * Get existing code generator. Instantiate a new one if it does not exist yet. * diff --git a/lib/internal/Magento/Framework/ObjectManager/Relations/Compiled.php b/lib/internal/Magento/Framework/ObjectManager/Relations/Compiled.php deleted file mode 100644 index 71455dbf9acd49e7e7c6d93699934a89ede5827a..0000000000000000000000000000000000000000 --- a/lib/internal/Magento/Framework/ObjectManager/Relations/Compiled.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * List of parent classes with their parents and interfaces - * - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Framework\ObjectManager\Relations; - -class Compiled implements \Magento\Framework\ObjectManager\RelationsInterface -{ - /** - * List of class relations - * - * @var array - */ - protected $_relations; - - /** - * Default relation list - * - * @var array - */ - protected $_default = []; - - /** - * @param array $relations - */ - public function __construct(array $relations) - { - $this->_relations = $relations; - } - - /** - * Check whether requested type is available for read - * - * @param string $type - * @return bool - */ - public function has($type) - { - return isset($this->_relations[$type]); - } - - /** - * Retrieve parents for class - * - * @param string $type - * @return array - */ - public function getParents($type) - { - return $this->_relations[$type]; - } -} diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Definition/CompiledTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Definition/CompiledTest.php deleted file mode 100644 index 49616e6765874e603baf5d55eea7a641aa6a79b2..0000000000000000000000000000000000000000 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Definition/CompiledTest.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php -/** - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Framework\ObjectManager\Test\Unit\Definition; - -use Magento\Framework\Serialize\SerializerInterface; - -class CompiledTest extends \PHPUnit_Framework_TestCase -{ - /** @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ - private $objectManagerHelper; - - protected function setUp() - { - $this->objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - } - - /** - * @param array $signatures - * @param array $definitions - * @param mixed $expected - * @dataProvider getParametersDataProvider - */ - public function testGetParametersWithoutDefinition($signatures, $definitions, $expected) - { - $model = new \Magento\Framework\ObjectManager\Definition\Compiled([$signatures, $definitions]); - $this->assertEquals($expected, $model->getParameters('wonderful')); - } - - public function getParametersDataProvider() - { - $wonderfulSignature = new \stdClass(); - return [ - [ - [], - ['wonderful' => null], - null, - ], - [ - ['wonderfulClass' => $wonderfulSignature], - ['wonderful' => 'wonderfulClass'], - $wonderfulSignature, - ] - ]; - } - - public function testGetParametersWithUnpacking() - { - $checkString = 'code to pack'; - $signatures = ['wonderfulClass' => json_encode($checkString)]; - $definitions = ['wonderful' => 'wonderfulClass']; - $object = new \Magento\Framework\ObjectManager\Definition\Compiled([$signatures, $definitions]); - $serializerMock = $this->getMock(SerializerInterface::class); - $serializerMock->expects($this->once()) - ->method('unserialize') - ->willReturnCallback(function ($data) { - return json_decode($data, true); - }); - $this->objectManagerHelper->setBackwardCompatibleProperty( - $object, - 'serializer', - $serializerMock - ); - $this->assertEquals($checkString, $object->getParameters('wonderful')); - } -} diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/DefinitionFactoryTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/DefinitionFactoryTest.php index 8ad1ac13a12cdac1c8ea8ed1d993c0bb258f0809..99db458c11953e32837b795bf5f2f710a4617c8c 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/DefinitionFactoryTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/DefinitionFactoryTest.php @@ -5,11 +5,11 @@ */ namespace Magento\Framework\ObjectManager\Test\Unit; -use Magento\Framework\ObjectManager\Definition\Compiled; -use Magento\Framework\Serialize\SerializerInterface; use Magento\Framework\Filesystem\Driver\File; use Magento\Framework\ObjectManager\DefinitionFactory; -use Magento\Framework\ObjectManager\Definition\Runtime; +use Magento\Framework\ObjectManager\DefinitionInterface; +use Magento\Framework\Interception\DefinitionInterface as InterceptionDefinitionInterface; +use Magento\Framework\ObjectManager\RelationsInterface; class DefinitionFactoryTest extends \PHPUnit_Framework_TestCase { @@ -18,11 +18,6 @@ class DefinitionFactoryTest extends \PHPUnit_Framework_TestCase */ private $filesystemDriverMock; - /** - * @var SerializerInterface|\PHPUnit_Framework_MockObject_MockObject - */ - private $serializerMock; - /** * @var DefinitionFactory */ @@ -34,43 +29,31 @@ class DefinitionFactoryTest extends \PHPUnit_Framework_TestCase $this->serializerMock = $this->getMock(SerializerInterface::class); $this->definitionFactory = new DefinitionFactory( $this->filesystemDriverMock, - $this->serializerMock, 'generation dir' ); } - public function testCreateClassDefinitionSerialized() + public function testCreateClassDefinition() { - $serializedDefinitions = 'serialized definitions'; - $definitions = [[], []]; - $this->serializerMock->expects($this->once()) - ->method('unserialize') - ->with($serializedDefinitions) - ->willReturn($definitions); $this->assertInstanceOf( - Compiled::class, - $this->definitionFactory->createClassDefinition($serializedDefinitions) + DefinitionInterface::class, + $this->definitionFactory->createClassDefinition() ); } - public function testCreateClassDefinitionArray() + public function testCreatePluginDefinition() { - $definitions = [[], []]; - $this->serializerMock->expects($this->never()) - ->method('unserialize'); $this->assertInstanceOf( - Compiled::class, - $this->definitionFactory->createClassDefinition($definitions) + InterceptionDefinitionInterface::class, + $this->definitionFactory->createPluginDefinition() ); } - public function testCreateClassDefinition() + public function testCreateRelations() { - $this->serializerMock->expects($this->never()) - ->method('unserialize'); $this->assertInstanceOf( - Runtime::class, - $this->definitionFactory->createClassDefinition() + RelationsInterface::class, + $this->definitionFactory->createRelations() ); } } diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/CompiledTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/CompiledTest.php deleted file mode 100644 index 336a798df100e156895ea5cd20768650909b2722..0000000000000000000000000000000000000000 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/CompiledTest.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Framework\ObjectManager\Test\Unit\Relations; - -class CompiledTest extends \PHPUnit_Framework_TestCase -{ - public function testHas() - { - $relations = ['amazing' => 'yes']; - - $model = new \Magento\Framework\ObjectManager\Relations\Compiled($relations); - $this->assertEquals(true, $model->has('amazing')); - $this->assertEquals(false, $model->has('fuzzy')); - } - - public function testGetParents() - { - $relations = ['amazing' => 'parents']; - - $model = new \Magento\Framework\ObjectManager\Relations\Compiled($relations); - $this->assertEquals('parents', $model->getParents('amazing')); - } -}