/** * Adds settings to the parameters that will be injected into the legacy kernel * * @param \eZ\Publish\Core\MVC\Legacy\Event\PreBuildKernelEvent $event * * @todo Cache computed settings somehow */ public function onBuildKernel(PreBuildKernelEvent $event) { if (!$this->enabled) { return; } if (!isset($this->options['extensions'])) { return; } $settings = array("site.ini/ExtensionSettings/ActiveExtensions" => $this->options['extensions']); $event->getParameters()->set("injected-merge-settings", $settings + (array) $event->getParameters()->get("injected-merge-settings")); }
/** * Adds settings to the parameters that will be injected into the legacy kernel * * @param \eZ\Publish\Core\MVC\Legacy\Event\PreBuildKernelEvent $event */ public function onBuildKernel( PreBuildKernelEvent $event ) { if( !$this->enabled ) { return; } $settings = array(); $settings["owpagenda.ini/AgendaSettings/FolderNodeId"] = $this->configResolver->getParameter( "open_wide_publish_agenda.agenda_folder.location_id" ); $event->getParameters()->set( "injected-settings", $settings + (array) $event->getParameters()->get( "injected-settings" ) ); }
/** * Adds the session settings to the parameters that will be injected * into the legacy kernel * * @param \eZ\Publish\Core\MVC\Legacy\Event\PreBuildKernelEvent $event */ public function onBuildKernelHandler(PreBuildKernelEvent $event) { $sessionInfos = array('configured' => false, 'started' => false, 'name' => false, 'namespace' => false, 'has_previous' => false, 'storage' => false); if (isset($this->session)) { $sessionInfos['configured'] = true; $sessionInfos['name'] = $this->session->getName(); $sessionInfos['started'] = $this->session->isStarted(); $sessionInfos['namespace'] = $this->sessionStorageKey; $sessionInfos['has_previous'] = isset($this->request) ? $this->request->hasPreviousSession() : false; $sessionInfos['storage'] = $this->sessionStorage; } $legacyKernelParameters = $event->getParameters(); $legacyKernelParameters->set('session', $sessionInfos); // Deactivate session cookie settings in legacy kernel. // This will force using settings defined in Symfony. $sessionSettings = array('site.ini/Session/CookieTimeout' => false, 'site.ini/Session/CookiePath' => false, 'site.ini/Session/CookieDomain' => false, 'site.ini/Session/CookieSecure' => false, 'site.ini/Session/CookieHttponly' => false); $legacyKernelParameters->set("injected-settings", $sessionSettings + (array) $legacyKernelParameters->get("injected-settings")); }
public function testConstruct() { $parameterBag = new ParameterBag(); $event = new PreBuildKernelEvent($parameterBag); $this->assertSame($parameterBag, $event->getParameters()); }
/** * Adds settings to the parameters that will be injected into the legacy kernel * * @param \eZ\Publish\Core\MVC\Legacy\Event\PreBuildKernelEvent $event */ public function onBuildKernel( PreBuildKernelEvent $event ) { if ( !$this->enabled ) { return; } $databaseSettings = $this->legacyDbHandler->getConnection()->getParams(); $settings = array(); foreach ( array( "host" => "Server", "port" => "Port", "user" => "User", "password" => "Password", "dbname" => "Database", "unix_socket" => "Socket", "driver" => "DatabaseImplementation" ) as $key => $iniKey ) { if ( isset( $databaseSettings[$key] ) ) { $iniValue = $databaseSettings[$key]; switch ( $key ) { case "driver": $driverMap = array( 'pdo_mysql' => 'ezmysqli', 'pdo_pgsql' => 'ezpostgresql', 'oci8' => 'ezoracle' ); if ( !isset( $driverMap[$iniValue] ) ) { throw new RuntimeException( "Could not map database driver to Legacy Stack database implementation.\n" . "Expected one of '" . implode( "', '", array_keys( $driverMap ) ) . "', got '" . $iniValue . "'." ); } $iniValue = $driverMap[$iniValue]; break; } $settings["site.ini/DatabaseSettings/$iniKey"] = $iniValue; } // Some settings need specific values when not present. else { switch ( $key ) { case "unix_socket": $settings["site.ini/DatabaseSettings/$iniKey"] = "disabled"; break; } } } // Image settings $settings += $this->getImageSettings(); // File settings $settings += array( 'site.ini/FileSettings/VarDir' => $this->configResolver->getParameter( 'var_dir' ), 'site.ini/FileSettings/StorageDir' => $this->configResolver->getParameter( 'storage_dir' ) ); // Multisite settings (PathPrefix and co) $settings += $this->getMultiSiteSettings(); // User settings $settings["site.ini/UserSettings/AnonymousUserID"] = $this->configResolver->getParameter( "anonymous_user_id" ); // Cache settings // Enforce ViewCaching to be enabled in order to persistence/http cache to be purged correctly. $settings['site.ini/ContentSettings/ViewCaching'] = 'enabled'; $event->getParameters()->set( "injected-settings", $settings + (array)$event->getParameters()->get( "injected-settings" ) ); if ( class_exists( 'ezxFormToken' ) ) { // Inject csrf protection settings to make sure legacy & symfony stack work together if ( $this->container->hasParameter( 'form.type_extension.csrf.enabled' ) && $this->container->getParameter( 'form.type_extension.csrf.enabled' ) ) { ezxFormToken::setSecret( $this->container->getParameter( 'kernel.secret' ) ); ezxFormToken::setFormField( $this->container->getParameter( 'form.type_extension.csrf.field_name' ) ); } // csrf protection is disabled, disable it in legacy extension as well. else { ezxFormToken::setIsEnabled( false ); } } // Register http cache content/cache event listener $ezpEvent = ezpEvent::getInstance(); $ezpEvent->attach( 'content/cache', array( $this->gatewayCachePurger, 'purge' ) ); $ezpEvent->attach( 'content/cache/all', array( $this->gatewayCachePurger, 'purgeAll' ) ); // Register persistence cache event listeners $ezpEvent->attach( 'content/cache', array( $this->persistenceCachePurger, 'content' ) ); $ezpEvent->attach( 'content/cache/all', array( $this->persistenceCachePurger, 'all' ) ); $ezpEvent->attach( 'content/cache/version', array( $this->persistenceCachePurger, 'contentVersion' ) ); $ezpEvent->attach( 'content/class/cache/all', array( $this->persistenceCachePurger, 'contentType' ) ); $ezpEvent->attach( 'content/class/cache', array( $this->persistenceCachePurger, 'contentType' ) ); $ezpEvent->attach( 'content/class/group/cache', array( $this->persistenceCachePurger, 'contentTypeGroup' ) ); $ezpEvent->attach( 'content/section/cache', array( $this->persistenceCachePurger, 'section' ) ); $ezpEvent->attach( 'user/cache/all', array( $this->persistenceCachePurger, 'user' ) ); $ezpEvent->attach( 'content/translations/cache', array( $this->persistenceCachePurger, 'languages' ) ); // Register image alias removal listeners $ezpEvent->attach( 'image/removeAliases', array( $this->aliasCleaner, 'removeAliases' ) ); $ezpEvent->attach( 'image/trashAliases', array( $this->aliasCleaner, 'removeAliases' ) ); $ezpEvent->attach( 'image/purgeAliases', array( $this->aliasCleaner, 'removeAliases' ) ); }
public function onBuildKernel(PreBuildKernelEvent $e) { $settings = ['site.ini/InformationCollectionSettings/EmailReceiver' => $this->contactEmail, 'site.ini/TemplateSettings/DevelopmentMode' => $this->debug ? 'enabled' : 'disabled', 'site.ini/TemplateSettings/ShowUsedTemplates' => $this->debug ? 'enabled' : 'disabled', 'site.ini/SiteSettings/GMapsKey' => $this->configResolver->getParameter('gmaps_key', 'metalfrance'), 'solr.ini/SolrBase/SearchServerURI' => $this->solrUrl]; $e->getParameters()->set("injected-settings", $settings + (array) $e->getParameters()->get("injected-settings")); }
/** * Adds settings to the parameters that will be injected into the legacy kernel * * @param PreBuildKernelEvent $event */ public function onBuildKernel(PreBuildKernelEvent $event) { $settings['novaseo.ini/Settings/Metas'] = $this->configResolver->getParameter('fieldtype_metas', 'novae_zseo'); $event->getParameters()->set("injected-settings", $settings + (array) $event->getParameters()->get("injected-settings")); }