⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
olasjoys
/
src
/
Core
/
Hook
/
Provider
/
View File Name :
GridDefinitionHookByServiceIdsProvider.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @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\Hook\Provider; use Exception; use Generator; use Logger; use PrestaShop\PrestaShop\Core\Grid\Definition\Factory\GridDefinitionFactoryInterface; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Provides hooks list by calling service ids from the container. */ final class GridDefinitionHookByServiceIdsProvider implements HookByServiceIdsProviderInterface { public const HOOK_PREFIX = 'action'; public const GRID_DEFINITION_HOOK_SUFFIX = 'GridDefinitionModifier'; public const GRID_QUERY_BUILDER_HOOK_SUFFIX = 'GridQueryBuilderModifier'; public const GRID_DATA_HOOK_SUFFIX = 'GridDataModifier'; public const GRID_FILTER_FORM_SUFFIX = 'GridFilterFormModifier'; public const GRID_PRESENTER_SUFFIX = 'GridPresenterModifier'; /** * @var ContainerInterface */ private $container; /** * @param ContainerInterface $container */ public function __construct(ContainerInterface $container) { $this->container = $container; } /** * {@inheritdoc} */ public function getHookNames(array $gridDefinitionServiceIds) { /** @var Generator $gridDefinitionIds */ $gridDefinitionIds = $this->getGridDefinitionIds($gridDefinitionServiceIds); $gridDefinitionHookNames = []; $gridQueryBuilderHookNames = []; $gridDataHookNames = []; $gridFilterFormHookNames = []; $gridPresenterHookNames = []; foreach ($gridDefinitionIds as $gridDefinitionId) { $gridDefinitionHookNames[] = $this->formatHookName( self::HOOK_PREFIX, $gridDefinitionId, self::GRID_DEFINITION_HOOK_SUFFIX ); $gridQueryBuilderHookNames[] = $this->formatHookName( self::HOOK_PREFIX, $gridDefinitionId, self::GRID_QUERY_BUILDER_HOOK_SUFFIX ); $gridDataHookNames[] = $this->formatHookName( self::HOOK_PREFIX, $gridDefinitionId, self::GRID_DATA_HOOK_SUFFIX ); $gridFilterFormHookNames[] = $this->formatHookName( self::HOOK_PREFIX, $gridDefinitionId, self::GRID_FILTER_FORM_SUFFIX ); $gridPresenterHookNames[] = $this->formatHookName( self::HOOK_PREFIX, $gridDefinitionId, self::GRID_PRESENTER_SUFFIX ); } return array_merge( $gridDefinitionHookNames, $gridQueryBuilderHookNames, $gridDataHookNames, $gridFilterFormHookNames, $gridPresenterHookNames ); } /** * Gets grid definition ids which are used in a grid hook formation. * * @param array $gridDefinitionServiceIds * * @return Generator */ private function getGridDefinitionIds(array $gridDefinitionServiceIds) { foreach ($gridDefinitionServiceIds as $serviceId) { try { $service = $this->container->get($serviceId); if (!$service instanceof GridDefinitionFactoryInterface) { continue; } $definition = $service->getDefinition(); $definitionId = $definition->getId(); $camelizedDefinitionId = Container::camelize($definitionId); yield $camelizedDefinitionId; } catch (Exception $e) { Logger::addLog(sprintf('Error while loading service: %s . Error: %s', $serviceId, $e)); } } } /** * Formats hook names. * * @param string $hookStartsWith * @param string $hookId * @param string $hookEndsWidth * * @return string */ private function formatHookName($hookStartsWith, $hookId, $hookEndsWidth) { return $hookStartsWith . $hookId . $hookEndsWidth; } }