Magento 2: Area code is not set
"Area code is not set" в Magento 2 - довольно распространенная ошибка при написании своих костылей, а так же консольных скриптов, исправить ее можно вот так..
Для собственных поделок
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); ini_set('memory_limit', '2G'); error_reporting(E_ALL); require 'app/bootstrap.php'; $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER); $objectManager = $bootstrap->getObjectManager(); /** @var $state \Magento\Framework\App\State */ $state = $objectManager->get(\Magento\Framework\App\State::class); $state->setAreaCode(\Magento\Framework\App\Area::AREA_GLOBAL); echo 'Мой костыль'; |
для консольных скриптов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/** * @var \Magento\Framework\App\State */ protected $state; public function __construct(\Magento\Framework\App\State $state) { $this->state = $state; parent::__construct(); } public function execute() { $this->state->setAreaCode(\Magento\Framework\App\Area::AREA_GLOBAL); .... } |
в других местах, по аналогии.
Area Code может принимать одно из значений определенных в константах класса \Magento\Framework\App\Area
- const AREA_GLOBAL = 'global';
- const AREA_FRONTEND = 'frontend';
- const AREA_ADMINHTML = 'adminhtml';
- const AREA_DOC = 'doc';
- const AREA_CRONTAB = 'crontab';
- const AREA_WEBAPI_REST = 'webapi_rest';
- const AREA_WEBAPI_SOAP = 'webapi_soap';
И используется тот, который подходит для конкретного контекста (global = общий, frontend = клиентская область, adminhtml = админка, crontab = крон, webapi = api и т.д.)
Author: | Tags: /
| Rating:
Leave a Reply