Skip to content

Commit 30dd1d9

Browse files
Fix Magento\Review\Model\ResourceModel\Rating\Option not instantiable in setup scripts
`Magento\Review\Model\ResourceModel\Rating\Option` depends on `\Magento\Customer\Model\Session` and this makes it not instantiable in setup scripts. By making it a proxy, we're postponing its instantiation. ```php // some setup script $optionModel = $objectManager->create(Magento\Review\Model\Rating\Option::class); ``` Below is the exceptions triggered when trying to run a `setup:upgrade` ``` [Magento\Framework\Exception\SessionException] Area code not set: Area code must be set before starting a session. Exception trace: () at /vagrant/vendor/magento/framework/Session/SessionManager.php:175 Magento\Framework\Session\SessionManager->start() at /vagrant/vendor/magento/framework/Session/SessionManager.php:130 Magento\Framework\Session\SessionManager->__construct() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:115 Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:89 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:71 Magento\Framework\ObjectManager\ObjectManager->get() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:236 Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:53 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:82 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:71 Magento\Framework\ObjectManager\ObjectManager->get() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:236 Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:53 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:82 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:71 Magento\Framework\ObjectManager\ObjectManager->get() at /vagrant/vendor/magento/framework/Model/AbstractModel.php:461 Magento\Framework\Model\AbstractModel->_getResource() at /vagrant/vendor/magento/framework/Model/AbstractModel.php:214 Magento\Framework\Model\AbstractModel->_init() at /vagrant/vendor/magento/module-review/Model/Rating/Option.php:32 Magento\Review\Model\Rating\Option->_construct() at /vagrant/vendor/magento/framework/Model/AbstractModel.php:193 Magento\Framework\Model\AbstractModel->__construct() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:105 Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:89 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:57 Magento\Framework\ObjectManager\ObjectManager->create() at /vagrant/src/Project/Catalog/Setup/data-upgrade/1.1.25.php:56 include() at /vagrant/src/Project/ModuleSetup/Spi/Updater/SequentialFiles.php:96 Project\ModuleSetup\Spi\Updater\includeFile() at /vagrant/src/Project/ModuleSetup/Spi/Updater/SequentialFiles.php:88 Project\ModuleSetup\Spi\Updater\SequentialFiles->update() at /vagrant/src/Project/Catalog/Setup/UpgradeData.php:46 Project\Catalog\Setup\UpgradeData->upgrade() at /vagrant/setup/src/Magento/Setup/Model/Installer.php:809 Magento\Setup\Model\Installer->handleDBSchemaData() at /vagrant/setup/src/Magento/Setup/Model/Installer.php:772 Magento\Setup\Model\Installer->installDataFixtures() at /vagrant/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php:72 Magento\Setup\Console\Command\UpgradeCommand->execute() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257 Symfony\Component\Console\Command\Command->run() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php:874 Symfony\Component\Console\Application->doRunCommand() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php:195 Symfony\Component\Console\Application->doRun() at /vagrant/vendor/magento/framework/Console/Cli.php:49 Magento\Framework\Console\Cli->doRun() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php:126 Symfony\Component\Console\Application->run() at /vagrant/bin/magento:25 [Magento\Framework\Exception\LocalizedException] Area code is not set Exception trace: () at /vagrant/vendor/magento/framework/App/State.php:139 Magento\Framework\App\State->getAreaCode() at /vagrant/vendor/magento/framework/Session/SessionManager.php:173 Magento\Framework\Session\SessionManager->start() at /vagrant/vendor/magento/framework/Session/SessionManager.php:130 Magento\Framework\Session\SessionManager->__construct() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:115 Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:89 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:71 Magento\Framework\ObjectManager\ObjectManager->get() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:236 Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:53 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:82 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:71 Magento\Framework\ObjectManager\ObjectManager->get() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:236 Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:53 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:82 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:71 Magento\Framework\ObjectManager\ObjectManager->get() at /vagrant/vendor/magento/framework/Model/AbstractModel.php:461 Magento\Framework\Model\AbstractModel->_getResource() at /vagrant/vendor/magento/framework/Model/AbstractModel.php:214 Magento\Framework\Model\AbstractModel->_init() at /vagrant/vendor/magento/module-review/Model/Rating/Option.php:32 Magento\Review\Model\Rating\Option->_construct() at /vagrant/vendor/magento/framework/Model/AbstractModel.php:193 Magento\Framework\Model\AbstractModel->__construct() at /vagrant/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:105 Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject() at /vagrant/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:89 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /vagrant/vendor/magento/framework/ObjectManager/ObjectManager.php:57 Magento\Framework\ObjectManager\ObjectManager->create() at /vagrant/src/Project/Catalog/Setup/data-upgrade/1.1.25.php:56 include() at /vagrant/src/Project/ModuleSetup/Spi/Updater/SequentialFiles.php:96 Project\ModuleSetup\Spi\Updater\includeFile() at /vagrant/src/Project/ModuleSetup/Spi/Updater/SequentialFiles.php:88 Project\ModuleSetup\Spi\Updater\SequentialFiles->update() at /vagrant/src/Project/Catalog/Setup/UpgradeData.php:46 Project\Catalog\Setup\UpgradeData->upgrade() at /vagrant/setup/src/Magento/Setup/Model/Installer.php:809 Magento\Setup\Model\Installer->handleDBSchemaData() at /vagrant/setup/src/Magento/Setup/Model/Installer.php:772 Magento\Setup\Model\Installer->installDataFixtures() at /vagrant/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php:72 Magento\Setup\Console\Command\UpgradeCommand->execute() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257 Symfony\Component\Console\Command\Command->run() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php:874 Symfony\Component\Console\Application->doRunCommand() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php:195 Symfony\Component\Console\Application->doRun() at /vagrant/vendor/magento/framework/Console/Cli.php:49 Magento\Framework\Console\Cli->doRun() at /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php:126 Symfony\Component\Console\Application->run() at /vagrant/bin/magento:25 ```
1 parent 3be18f3 commit 30dd1d9

File tree

1 file changed

+5
-0
lines changed
  • app/code/Magento/Review/etc

1 file changed

+5
-0
lines changed

app/code/Magento/Review/etc/di.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,9 @@
2626
<argument name="urlModel" xsi:type="object">Magento\Framework\Url</argument>
2727
</arguments>
2828
</type>
29+
<type name="Magento\Review\Model\ResourceModel\Rating\Option">
30+
<arguments>
31+
<argument name="customerSession" xsi:type="object">Magento\Customer\Model\Session\Proxy</argument>
32+
</arguments>
33+
</type>
2934
</config>

0 commit comments

Comments
 (0)