/** * @inheritdoc * * The argument in this implementation must be a Configuration object. * * This implementation automatically adds a ConfigTokenProcessor and an EngineTokenProcessor. */ public function configure($overrides = null) { LoggerRegistry::debug('AbstractConfigurableModule::configure({overrides})', array('overrides' => TypeUtilities::describe($overrides))); $this->config = new Configuration($this->getConfigLoader()); $this->config->addProcessor(new EngineTokenProcessor($this->getEngine(), 'engine')); $this->config->addProcessor(new ConfigTokenProcessor($this, 'config')); $engine = $this->getEngine(); if ($engine instanceof ConfigurableInterface) { $this->config->addProcessor(new ConfigTokenProcessor($engine, 'engine-config')); } $roots = array('site' => $this->getEngine()->getSiteInfo()->getSiteRoot(), 'sitegear' => $this->getEngine()->getApplicationInfo()->getSitegearRoot(), 'engine' => $this->getEngine()->getEngineRoot(), 'module' => $this->getModuleRoot()); $this->config->addProcessor(new IncludeTokenProcessor($roots, $this->getConfigLoader(), 'include')); $this->config->merge($this->defaults()); if (!is_null($overrides)) { $this->config->merge($overrides); } return $this; }
/** * @param string $formKey * @param string $formUrl * @param ConfigurableInterface $module * @param string[] $paths * * @return FormInterface|null */ protected function loadFormFromDefinitions($formKey, $formUrl, ConfigurableInterface $module, array $paths) { $path = FileUtilities::firstExistingPath($paths); if (!empty($path)) { // Setup the configuration container for the form definition. $config = new Configuration($this->formsModule->getConfigLoader()); $config->addProcessor(new ArrayTokenProcessor($this->getValues($formKey), 'data')); $config->addProcessor(new EngineTokenProcessor($this->formsModule->getEngine(), 'engine')); $config->addProcessor(new ConfigTokenProcessor($this->formsModule->getEngine(), 'engine-config')); $config->addProcessor(new ConfigTokenProcessor($module, 'config')); // Merge the configuration defaults and form definition file contents. $config->merge($this->baseConfig); $config->merge(array('form-url' => $formUrl)); $config->merge($path); // Build and return the form $builder = new FormBuilder($this->formsModule, $formKey); return $builder->buildForm($config->all()); } return null; }