* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Product; use PrestaShopBundle\Service\Hook\HookFinder; /** * This class gets the extra content to display on the product page * from the modules hooked on displayProductExtraContent. */ class ProductExtraContentFinder extends HookFinder { protected $hookName = 'displayProductExtraContent'; protected $expectedInstanceClasses = ['PrestaShop\PrestaShop\Core\Product\ProductExtraContent']; /** * Execute hook to get all addionnal product content, and check if valid * (not empty and only instances of class ProductExtraContent). * * @return array * * @throws \Exception */ public function find() { // Check first that we have a product to send as params if (!array_key_exists('product', $this->params) || !$this->params['product'] instanceof \Product) { throw new \Exception('Required product param not found.'); } return parent::find(); } }