/** * @param \Symfony\Component\DependencyInjection\ContainerInterface $container * @param string $defaultLocale */ public function __construct(ContainerInterface $container, $defaultLocale) { if (version_compare(SonataIntlBundle::getSymfonyVersion(Kernel::VERSION), '2.1.0', '<')) { throw new \RuntimeException('Invalid Symfony2 version, please use Symfony 2.1.x series'); } $this->container = $container; $this->defaultLocale = $defaultLocale; }
/** * @param \Symfony\Component\HttpFoundation\Session $session * @param string $defaultLocale */ public function __construct(Session $session, $defaultLocale) { if (!version_compare(SonataIntlBundle::getSymfonyVersion(Kernel::VERSION), '2.1.0', '<')) { throw new \RuntimeException('Invalid Symfony2 version, please use Symfony 2.0.x series'); } $this->session = $session; $this->defaultLocale = $defaultLocale; }
/** * @param ContainerBuilder $container * @param array $config */ protected function configureLocale(ContainerBuilder $container, array $config) { if (version_compare(SonataIntlBundle::getSymfonyVersion(Kernel::VERSION), '2.1.0', '>=')) { $container->getDefinition('sonata.intl.locale_detector.request')->replaceArgument(1, $config['locale'] ? $config['locale'] : $container->getParameter('kernel.default_locale')); $container->setAlias('sonata.intl.locale_detector', 'sonata.intl.locale_detector.request'); $container->removeDefinition('sonata.intl.locale_detector.session'); } else { $container->getDefinition('sonata.intl.locale_detector.session')->replaceArgument(1, $config['locale'] ? $config['locale'] : $container->getParameter('session.default_locale')); $container->setAlias('sonata.intl.locale_detector', 'sonata.intl.locale_detector.session'); $container->removeDefinition('sonata.intl.locale_detector.request'); } }
/** * @dataProvider getVersions */ public function testSymfonyVersion($currentVersion, $minVersion, $versionExpected, $versionBundle) { $this->assertEquals($versionExpected, version_compare($currentVersion, $minVersion, '>=')); $this->assertEquals($versionBundle, version_compare(SonataIntlBundle::getSymfonyVersion($currentVersion), $minVersion, '>=')); }