⚝
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
/
Adapter
/
Container
/
View File Name :
DoctrineBuilderExtension.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\Adapter\Container; use Doctrine\Bundle\DoctrineBundle\DependencyInjection\DoctrineExtension; use PrestaShop\PrestaShop\Core\EnvironmentInterface; use PrestaShopBundle\DependencyInjection\Compiler\ModulesDoctrineCompilerPass; use PrestaShopBundle\DependencyInjection\Config\ConfigYamlLoader; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; /** * Class DoctrineBuilderExtension is used to init the doctrine service in the ContainerBuilder. * This is a manual initialisation of Doctrine because we are not in a symfony context, so we need * add the extension manually (required parameters are managed by ContainerParametersExtension). * * Note: this can't be done as a CompilerPassInterface because extensions need to be registered before compilation. */ class DoctrineBuilderExtension implements ContainerBuilderExtensionInterface { /** @var EnvironmentInterface */ private $environment; /** * @param EnvironmentInterface $environment */ public function __construct(EnvironmentInterface $environment) { $this->environment = $environment; } /** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $configDirectories = [$container->getParameter('kernel.root_dir') . '/config']; $fileLocator = new FileLocator($configDirectories); $configLoader = new ConfigYamlLoader($fileLocator); $configPath = sprintf('config_legacy_%s.yml', $this->environment->getName()); $configLoader->load($configPath); $config = $configLoader->getConfig(); $container->registerExtension(new DoctrineExtension()); $container->loadFromExtension('doctrine', $config['doctrine']); $container->addCompilerPass(new ModulesDoctrineCompilerPass()); } }