/** * {@inheritdoc} */ public function get($type) { if (!$this->decoratedRegistry->has($type)) { return $this->defaultResolver; } return $this->decoratedRegistry->get($type); }
/** * {@inheritdoc} */ public function getDataSource(Grid $grid, Parameters $parameters) { $driver = $grid->getDriver(); if (!$this->driversRegistry->has($driver)) { throw new UnsupportedDriverException($driver); } return $this->driversRegistry->get($driver)->getDataSource($grid->getDriverConfiguration(), $parameters); }
/** * {@inheritdoc} */ public function load(ThemeInterface $theme, $namespace = null) { $schemaAlias = sprintf('theme_%s', $theme->getName()); if (!$this->schemaRegistry->has($schemaAlias)) { $schema = $this->themeSettingsSchemaProvider->getSchema($theme); $this->schemaRegistry->register($schemaAlias, $schema); } return $this->decoratedSettingsManager->load($schemaAlias, $namespace); }
/** * {@inheritdoc} */ public function getDataSource(Grid $grid, Parameters $parameters) { $driverName = $grid->getDriver(); if (!$this->driversRegistry->has($driverName)) { throw new UnsupportedDriverException($driverName); } /** @var DriverInterface $driver */ $driver = $this->driversRegistry->get($driverName); return $driver->getDataSource($grid->getDriverConfiguration(), $parameters); }
function it_throws_an_exception_if_driver_is_not_supported(Grid $grid, ServiceRegistryInterface $driversRegistry) { $parameters = new Parameters(); $grid->getDriver()->willReturn('doctrine/banana'); $driversRegistry->has('doctrine/banana')->willReturn(false); $this->shouldThrow(new UnsupportedDriverException('doctrine/banana'))->during('getDataSource', [$grid, $parameters]); }
function it_registers_theme_schema_alias_if_not_exists_during_loading_settings(SettingsManagerInterface $decoratedSettingsManager, ServiceRegistryInterface $schemaRegistry, ThemeSettingsSchemaProviderInterface $themeSettingsSchemaProvider, ThemeInterface $theme, SettingsInterface $settings, SchemaInterface $schema) { $theme->getName()->willReturn('theme/name'); $schemaRegistry->has('theme_theme/name')->willReturn(false); $themeSettingsSchemaProvider->getSchema($theme)->willReturn($schema); $schemaRegistry->register('theme_theme/name', $schema)->shouldBeCalled(); $decoratedSettingsManager->load('theme_theme/name', null)->willReturn($settings); $this->load($theme)->shouldReturn($settings); }