本文整理汇总了PHP中Drupal\Core\DependencyInjection\ContainerBuilder::setParameter方法的典型用法代码示例。如果您正苦于以下问题:PHP ContainerBuilder::setParameter方法的具体用法?PHP ContainerBuilder::setParameter怎么用?PHP ContainerBuilder::setParameter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Drupal\Core\DependencyInjection\ContainerBuilder
的用法示例。
在下文中一共展示了ContainerBuilder::setParameter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: load
/**
* Loads a Yaml file.
*
* @param mixed $file The resource
*/
public function load($file)
{
// Load from the file cache, fall back to loading the file.
// @todo Refactor this to cache parsed definition objects in
// https://www.drupal.org/node/2464053
$content = $this->fileCache->get($file);
if (!$content) {
$content = $this->loadFile($file);
$this->fileCache->set($file, $content);
}
// Not supported.
//$this->container->addResource(new FileResource($path));
// empty file
if (null === $content) {
return;
}
// imports
// Not supported.
//$this->parseImports($content, $file);
// parameters
if (isset($content['parameters'])) {
foreach ($content['parameters'] as $key => $value) {
$this->container->setParameter($key, $this->resolveServices($value));
}
}
// extensions
// Not supported.
//$this->loadFromExtensions($content);
// services
$this->parseDefinitions($content, $file);
}
示例2: load
/**
* Loads a Yaml file.
*
* @param mixed $file The resource
*/
public function load($file)
{
// Load from the file cache, fall back to loading the file.
// @todo Refactor this to cache parsed definition objects in
// https://www.drupal.org/node/2464053
$content = $this->fileCache->get($file);
if (!$content) {
$content = $this->loadFile($file);
$this->fileCache->set($file, $content);
}
// Not supported.
//$this->container->addResource(new FileResource($path));
// empty file
if (null === $content) {
return;
}
// imports
// Not supported.
//$this->parseImports($content, $file);
// parameters
if (isset($content['parameters'])) {
if (!is_array($content['parameters'])) {
throw new InvalidArgumentException(sprintf('The "parameters" key should contain an array in %s. Check your YAML syntax.', $file));
}
foreach ($content['parameters'] as $key => $value) {
$this->container->setParameter($key, $this->resolveServices($value));
}
}
// extensions
// Not supported.
//$this->loadFromExtensions($content);
// services
$this->parseDefinitions($content, $file);
}
示例3: alter
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
if ($container->has('file.usage')) {
// Override the class used for the file.usage service.
$definition = $container->getDefinition('file.usage');
$definition->setClass('Drupal\\service_provider_test\\TestFileUsage');
}
if ($indicator = Settings::get('deployment_identifier')) {
$container->setParameter('container_rebuild_indicator', $indicator);
}
if ($parameter = Settings::get('container_rebuild_test_parameter')) {
$container->setParameter('container_rebuild_test_parameter', $parameter);
}
}
示例4: register
/**
* {@inheritdoc}
*/
public function register(ContainerBuilder $container)
{
$container->setParameter('app.root', DRUPAL_ROOT);
$this->registerUuid($container);
$this->registerTest($container);
// Add the compiler pass that lets service providers modify existing
// service definitions. This pass must come first so that later
// list-building passes are operating on the post-alter services list.
$container->addCompilerPass(new ModifyServiceDefinitionsPass());
$container->addCompilerPass(new BackendCompilerPass());
$container->addCompilerPass(new StackedKernelPass());
// Collect tagged handler services as method calls on consumer services.
$container->addCompilerPass(new TaggedHandlersPass());
$container->addCompilerPass(new RegisterStreamWrappersPass());
// Add a compiler pass for registering event subscribers.
$container->addCompilerPass(new RegisterKernelListenersPass(), PassConfig::TYPE_AFTER_REMOVING);
$container->addCompilerPass(new RegisterAccessChecksPass());
// Add a compiler pass for registering services needing destruction.
$container->addCompilerPass(new RegisterServicesForDestructionPass());
// Add the compiler pass that will process the tagged services.
$container->addCompilerPass(new ListCacheBinsPass());
$container->addCompilerPass(new CacheContextsPass());
// Register plugin managers.
$container->addCompilerPass(new PluginManagerPass());
}
示例5: register
/**
* Registers services to the container.
*
* @param ContainerBuilder $container
* The ContainerBuilder to register services to.
*/
public function register(ContainerBuilder $container)
{
static::$container = $container;
$class_map = $this->AutoloaderInit();
$ns = [];
foreach ($class_map as $name => $path) {
$path = preg_replace("/\\.php\$/i", '', $path);
$path = explode(DIRECTORY_SEPARATOR, $path);
$name = explode('\\', $name);
while (end($path) === end($name)) {
array_pop($path);
array_pop($name);
}
$path = implode(DIRECTORY_SEPARATOR, $path);
$name = implode('\\', $name);
if (is_dir($path)) {
if (is_dir($path . '/Plugin') || is_dir($path . '/Entity') || is_dir($path . '/Element')) {
$ns[$name][] = $path;
}
}
}
foreach ($ns as $name => $path) {
$path = array_unique($path);
$ns[$name] = count($path) == 1 ? reset($path) : $path;
}
$ns += $container->getParameter('container.namespaces');
$container->setParameter('container.namespaces', $ns);
$yaml_loader = new YamlFileLoader($container);
foreach (static::getFiles('/^.+\\.services\\.yml$/i') as $file) {
$yaml_loader->load($file);
}
}
示例6: setUp
/**
* {@inheritdoc}
*/
protected function setUp()
{
parent::setUp();
$container = new ContainerBuilder();
$container->setParameter('workspace.default', 1);
\Drupal::setContainer($container);
$this->workspaceNegotiator = new DefaultWorkspaceNegotiator();
$this->workspaceNegotiator->setContainer($container);
$this->request = Request::create('<front>');
}
示例7: alter
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
$definition = $container->getDefinition('language_manager');
$definition->setClass('Drupal\\language\\ConfigurableLanguageManager')->addArgument(new Reference('config.factory'))->addArgument(new Reference('module_handler'))->addArgument(new Reference('language.config_factory_override'))->addArgument(new Reference('request_stack'));
if ($default_language_values = $this->getDefaultLanguageValues()) {
$container->setParameter('language.default_values', $default_language_values);
}
// For monolingual sites, we explicitly set the default language for the
// language config override service as there is no language negotiation.
if (!$this->isMultilingual()) {
$container->getDefinition('language.config_factory_override')->addMethodCall('setLanguageFromDefault', array(new Reference('language.default')));
}
}
示例8: setMinimalContainerPreKernel
public function setMinimalContainerPreKernel()
{
// Create a minimal mocked container to support calls to t() in the pre-kernel
// base system verification code paths below. The strings are not actually
// used or output for these calls.
$container = new ContainerBuilder();
$container->setParameter('language.default_values', Language::$defaultValues);
$container->register('language.default', 'Drupal\\Core\\Language\\LanguageDefault')->addArgument('%language.default_values%');
$container->register('string_translation', 'Drupal\\Core\\StringTranslation\\TranslationManager')->addArgument(new Reference('language.default'));
// Register the stream wrapper manager.
$container->register('stream_wrapper_manager', 'Drupal\\Core\\StreamWrapper\\StreamWrapperManager')->addMethodCall('setContainer', array(new Reference('service_container')));
$container->register('file_system', 'Drupal\\Core\\File\\FileSystem')->addArgument(new Reference('stream_wrapper_manager'))->addArgument(Settings::getInstance())->addArgument((new LoggerChannelFactory())->get('file'));
\Drupal::setContainer($container);
}
示例9: alter
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
// Disable Twig cache (php storage does not exist yet).
$twig_config = $container->getParameter('twig.config');
$twig_config['cache'] = FALSE;
$container->setParameter('twig.config', $twig_config);
// No service may persist when the early installer kernel is rebooted into
// the production environment.
// @todo The DrupalKernel reboot performed by drupal_install_system() is
// actually not a "regular" reboot (like ModuleHandler::install()), so
// services are not actually persisted.
foreach ($container->findTaggedServiceIds('persist') as $id => $tags) {
$definition = $container->getDefinition($id);
$definition->clearTag('persist');
}
}
示例10: setUp
/**
* {@inheritdoc}
*/
protected function setUp()
{
parent::setUp();
$container = new ContainerBuilder();
$request = $this->getMockBuilder('\\Symfony\\Component\\HttpFoundation\\Request')->disableOriginalConstructor()->getMock();
$this->view = $this->getMock('\\Drupal\\views\\Entity\\View', array('initHandlers'), array(array('id' => 'test_view'), 'view'));
$view_executable = $this->getMock('\\Drupal\\views\\ViewExecutable', array('initHandlers', 'getTitle'), array(), '', FALSE);
$view_executable->expects($this->any())->method('getTitle')->willReturn('View title');
$view_executable->storage = $this->view;
$view_executable->argument = array();
$display_manager = $this->getMockBuilder('\\Drupal\\views\\Plugin\\ViewsPluginManager')->disableOriginalConstructor()->getMock();
$container->set('plugin.manager.views.display', $display_manager);
$access_manager = $this->getMockBuilder('\\Drupal\\views\\Plugin\\ViewsPluginManager')->disableOriginalConstructor()->getMock();
$container->set('plugin.manager.views.access', $access_manager);
$route_provider = $this->getMockBuilder('\\Drupal\\Core\\Routing\\RouteProviderInterface')->disableOriginalConstructor()->getMock();
$container->set('router.route_provider', $route_provider);
$container->setParameter('authentication_providers', ['basic_auth' => 'basic_auth']);
$state = $this->getMock('\\Drupal\\Core\\State\\StateInterface');
$container->set('state', $state);
$style_manager = $this->getMockBuilder('\\Drupal\\views\\Plugin\\ViewsPluginManager')->disableOriginalConstructor()->getMock();
$container->set('plugin.manager.views.style', $style_manager);
$container->set('renderer', $this->getMock('Drupal\\Core\\Render\\RendererInterface'));
$authentication_collector = $this->getMock('\\Drupal\\Core\\Authentication\\AuthenticationCollectorInterface');
$container->set('authentication_collector', $authentication_collector);
$authentication_collector->expects($this->any())->method('getSortedProviders')->will($this->returnValue(['basic_auth' => 'data', 'cookie' => 'data']));
\Drupal::setContainer($container);
$this->restExport = RestExport::create($container, array(), "test_routes", array());
$this->restExport->view = $view_executable;
// Initialize a display.
$this->restExport->display = array('id' => 'page_1');
// Set the style option.
$this->restExport->setOption('style', array('type' => 'serializer'));
// Set the auth option.
$this->restExport->setOption('auth', ['basic_auth']);
$display_manager->expects($this->once())->method('getDefinition')->will($this->returnValue(array('id' => 'test', 'provider' => 'test')));
$none = $this->getMockBuilder('\\Drupal\\views\\Plugin\\views\\access\\None')->disableOriginalConstructor()->getMock();
$access_manager->expects($this->once())->method('createInstance')->will($this->returnValue($none));
$style_plugin = $this->getMock('\\Drupal\\rest\\Plugin\\views\\style\\Serializer', array('getFormats', 'init'), array(), '', FALSE);
$style_plugin->expects($this->once())->method('getFormats')->will($this->returnValue(array('json')));
$style_plugin->expects($this->once())->method('init')->with($view_executable)->will($this->returnValue(TRUE));
$style_manager->expects($this->once())->method('createInstance')->will($this->returnValue($style_plugin));
$this->routes = new RouteCollection();
$this->routes->add('test_1', new Route('/test/1'));
$this->routes->add('view.test_view.page_1', new Route('/test/2'));
$this->view->addDisplay('page', NULL, 'page_1');
}
示例11: testLocks
/**
* Test the lock behavior.
*/
public function testLocks()
{
$container = new ContainerBuilder();
$container->set('module_handler', $this->getMock('Drupal\\Core\\Extension\\ModuleHandlerInterface'));
$container->set('current_user', $this->getMock('Drupal\\Core\\Session\\AccountInterface'));
$container->set('cache.test', $this->getMock('Drupal\\Core\\Cache\\CacheBackendInterface'));
$container->set('comment.statistics', $this->getMock('Drupal\\comment\\CommentStatisticsInterface'));
$request_stack = new RequestStack();
$request_stack->push(Request::create('/'));
$container->set('request_stack', $request_stack);
$container->setParameter('cache_bins', array('cache.test' => 'test'));
$lock = $this->getMock('Drupal\\Core\\Lock\\LockBackendInterface');
$cid = 2;
$lock_name = "comment:{$cid}:.00/";
$lock->expects($this->at(0))->method('acquire')->with($lock_name, 30)->will($this->returnValue(TRUE));
$lock->expects($this->at(1))->method('release')->with($lock_name);
$lock->expects($this->exactly(2))->method($this->anything());
$container->set('lock', $lock);
$cache_tag_invalidator = $this->getMock('Drupal\\Core\\Cache\\CacheTagsInvalidator');
$container->set('cache_tags.invalidator', $cache_tag_invalidator);
\Drupal::setContainer($container);
$methods = get_class_methods('Drupal\\comment\\Entity\\Comment');
unset($methods[array_search('preSave', $methods)]);
unset($methods[array_search('postSave', $methods)]);
$methods[] = 'invalidateTagsOnSave';
$comment = $this->getMockBuilder('Drupal\\comment\\Entity\\Comment')->disableOriginalConstructor()->setMethods($methods)->getMock();
$comment->expects($this->once())->method('isNew')->will($this->returnValue(TRUE));
$comment->expects($this->once())->method('hasParentComment')->will($this->returnValue(TRUE));
$comment->expects($this->once())->method('getParentComment')->will($this->returnValue($comment));
$comment->expects($this->once())->method('getCommentedEntityId')->will($this->returnValue($cid));
$comment->expects($this->any())->method('getThread')->will($this->returnValue(''));
$parent_entity = $this->getMock('\\Drupal\\Core\\Entity\\ContentEntityInterface');
$parent_entity->expects($this->atLeastOnce())->method('getCacheTagsToInvalidate')->willReturn(['node:1']);
$comment->expects($this->once())->method('getCommentedEntity')->willReturn($parent_entity);
$entity_type = $this->getMock('\\Drupal\\Core\\Entity\\EntityTypeInterface');
$comment->expects($this->any())->method('getEntityType')->will($this->returnValue($entity_type));
$comment->expects($this->at(1))->method('get')->with('status')->will($this->returnValue((object) array('value' => NULL)));
$storage = $this->getMock('Drupal\\comment\\CommentStorageInterface');
// preSave() should acquire the lock. (This is what's really being tested.)
$comment->preSave($storage);
// Release the acquired lock before exiting the test.
$comment->postSave($storage);
}
示例12: alter
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
// Disable Twig cache (php storage does not exist yet).
$twig_config = $container->getParameter('twig.config');
$twig_config['cache'] = FALSE;
$container->setParameter('twig.config', $twig_config);
// Disable configuration overrides.
// ConfigFactory would to try to load language overrides and InstallStorage
// throws an exception upon trying to load a non-existing file.
$container->get('config.factory')->setOverrideState(FALSE);
// No service may persist when the early installer kernel is rebooted into
// the production environment.
// @todo The DrupalKernel reboot performed by drupal_install_system() is
// actually not a "regular" reboot (like ModuleHandler::install()), so
// services are not actually persisted.
foreach ($container->findTaggedServiceIds('persist') as $id => $tags) {
$definition = $container->getDefinition($id);
$definition->clearTag('persist');
}
}
示例13: testLocks
/**
* Test the lock behavior.
*/
public function testLocks()
{
$container = new ContainerBuilder();
$container->set('module_handler', $this->getMock('Drupal\\Core\\Extension\\ModuleHandlerInterface'));
$container->set('current_user', $this->getMock('Drupal\\Core\\Session\\AccountInterface'));
$container->set('cache.test', $this->getMock('Drupal\\Core\\Cache\\CacheBackendInterface'));
$request_stack = new RequestStack();
$request_stack->push(Request::create('/'));
$container->set('request_stack', $request_stack);
$container->setParameter('cache_bins', array('cache.test' => 'test'));
$lock = $this->getMock('Drupal\\Core\\Lock\\LockBackendInterface');
$cid = 2;
$lock_name = "comment:{$cid}:.00/";
$lock->expects($this->at(0))->method('acquire')->with($lock_name, 30)->will($this->returnValue(TRUE));
$lock->expects($this->at(1))->method('release')->with($lock_name);
$lock->expects($this->exactly(2))->method($this->anything());
$container->set('lock', $lock);
\Drupal::setContainer($container);
$methods = get_class_methods('Drupal\\comment\\Entity\\Comment');
unset($methods[array_search('preSave', $methods)]);
unset($methods[array_search('postSave', $methods)]);
$methods[] = 'onSaveOrDelete';
$methods[] = 'onUpdateBundleEntity';
$comment = $this->getMockBuilder('Drupal\\comment\\Entity\\Comment')->disableOriginalConstructor()->setMethods($methods)->getMock();
$comment->expects($this->once())->method('isNew')->will($this->returnValue(TRUE));
$comment->expects($this->once())->method('hasParentComment')->will($this->returnValue(TRUE));
$comment->expects($this->once())->method('getParentComment')->will($this->returnValue($comment));
$comment->expects($this->once())->method('getCommentedEntityId')->will($this->returnValue($cid));
$comment->expects($this->any())->method('getThread')->will($this->returnValue(''));
$entity_type = $this->getMock('\\Drupal\\Core\\Entity\\EntityTypeInterface');
$comment->expects($this->any())->method('getEntityType')->will($this->returnValue($entity_type));
$comment->expects($this->at(1))->method('get')->with('status')->will($this->returnValue((object) array('value' => NULL)));
$comment->expects($this->once())->method('getCacheTag')->will($this->returnValue(array('comment' => array($cid))));
$comment->expects($this->once())->method('getListCacheTags')->will($this->returnValue(array('comments' => TRUE)));
$storage = $this->getMock('Drupal\\comment\\CommentStorageInterface');
$comment->preSave($storage);
$comment->postSave($storage);
}
示例14: alter
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
if ($container->has('config.factory')) {
// The configuration factory depends on the cache factory, but that
// depends on the 'cache_default_bin_backends' parameter that has not yet
// been set by \Drupal\Core\Cache\ListCacheBinsPass::process() at this
// point.
$parameter_name = 'cache_default_bin_backends';
if (!$container->hasParameter($parameter_name)) {
$container->setParameter($parameter_name, []);
}
/** @var \Drupal\Core\Config\ConfigFactoryInterface $config_factory */
$config_factory = $container->get('config.factory');
$config = $config_factory->get('libraries.settings');
if (!$config->isNew()) {
// Set the local definition path.
$container->getDefinition('libraries.definition.discovery.local')->replaceArgument(1, $config->get('definition.local.path'));
// Set the remote definition URL. Note that this is set even if
// the remote discovery is not enabled below in case the
// 'libraries.definition.discovery.remote' service is used explicitly.
$container->getDefinition('libraries.definition.discovery.remote')->replaceArgument(2, $config->get('definition.remote.url'));
// Because it is less convenient to remove a method call than to add
// one, the remote discovery is not registered in libraries.services.yml
// and instead added here, even though the 'definition.remote.enable'
// configuration value is TRUE by default.
if ($config->get('definition.remote.enable')) {
// Add the remote discovery to the list of chained discoveries.
$container->getDefinition('libraries.definition.discovery')->addMethodCall('addDiscovery', [new Reference('libraries.definition.discovery.remote')]);
}
}
// At this point the event dispatcher has not yet been populated with
// event subscribers by RegisterEventSubscribersPass::process() but has
// already bin injected in the configuration factory. Reset those services
// accordingly.
$container->set('event_dispatcher', NULL);
$container->set('config.factory', NULL);
}
}
示例15: alter
public function alter(ContainerBuilder $container)
{
// Override the password_migrate class with a new class.
try {
$definition = $container->getDefinition('password_migrate');
$definition->setClass('Drupal\\multiversion\\MigratePassword');
} catch (InvalidArgumentException $e) {
// Do nothing, migrate module is not installed.
}
$renderer_config = $container->getParameter('renderer.config');
$renderer_config['required_cache_contexts'][] = 'workspace';
$container->setParameter('renderer.config', $renderer_config);
// Switch the menu tree storage to our own that respect Workspace cache
// contexts.
$definition = $container->getDefinition('menu.tree_storage');
$definition->setClass('Drupal\\multiversion\\MenuTreeStorage');
// Override the comment.statistics class with a new class.
try {
$definition = $container->getDefinition('comment.statistics');
$definition->setClass('Drupal\\multiversion\\CommentStatistics');
} catch (InvalidArgumentException $e) {
// Do nothing, comment module is not installed.
}
}