* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PsAccounts\Account\CommandHandler; use PrestaShop\Module\PsAccounts\Context\ShopContext; use PrestaShop\Module\PsAccounts\Cqrs\CommandBus; abstract class MultiShopHandler { /** * @var ShopContext */ protected $shopContext; /** * @var CommandBus */ protected $commandBus; public function __construct( ShopContext $shopContext, CommandBus $commandBus ) { $this->shopContext = $shopContext; $this->commandBus = $commandBus; } /** * @param \Closure $handler * * @return void */ protected function handleMulti($handler) { foreach ($this->getShopIds() as $multiShopId) { $this->shopContext->execInShopContext($multiShopId, function () use ($handler, $multiShopId) { $handler($multiShopId); }); } } /** * @return int[] */ protected function getShopIds() { if ($this->shopContext->isMultishopActive()) { return $this->shopContext->getMultiShopIds(); } //return [\Shop::getContextShopID(true)]; return [\Shop::getContextShopID()]; } }