mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 09:02:12 +00:00
Integrated TranslationBundle with ResourceBundle
This commit is contained in:
parent
49bde71271
commit
4416d572c5
35 changed files with 75 additions and 372 deletions
|
|
@ -298,9 +298,11 @@ app/console doctrine:phpcr:document:migrate-class "Symfony\Cmf\Bundle\BlockBundl
|
|||
app/console doctrine:phpcr:document:migrate-class "Symfony\Cmf\Bundle\BlockBundle\Doctrine\Phpcr\StringBlock" "Sylius\Bundle\ContentBundle\Document\StringBlock"
|
||||
```
|
||||
|
||||
### Translation
|
||||
### Translation and TranslationBundle
|
||||
|
||||
* Moved whole component to ``Resource``
|
||||
* Integrated ``Translation`` component with ``Resource`` component
|
||||
* Integrated ``TranslationBundle`` with ``ResourceBundle``
|
||||
* Renamed ``TranslatableResourceRepository`` to ``TranslatableRepository``
|
||||
|
||||
## From 0.15.0 to 0.16.x
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ suites:
|
|||
TaxationBundle: { namespace: Sylius\Bundle\TaxationBundle, psr4_prefix: Sylius\Bundle\TaxationBundle, spec_path: src/Sylius/Bundle/TaxationBundle, src_path: src/Sylius/Bundle/TaxationBundle }
|
||||
TaxonomyBundle: { namespace: Sylius\Bundle\TaxonomyBundle, psr4_prefix: Sylius\Bundle\TaxonomyBundle, spec_path: src/Sylius/Bundle/TaxonomyBundle, src_path: src/Sylius/Bundle/TaxonomyBundle }
|
||||
ThemeBundle: { namespace: Sylius\Bundle\ThemeBundle, psr4_prefix: Sylius\Bundle\ThemeBundle , spec_path: src/Sylius/Bundle/ThemeBundle, src_path: src/Sylius/Bundle/ThemeBundle }
|
||||
TranslationBundle: { namespace: Sylius\Bundle\TranslationBundle, psr4_prefix: Sylius\Bundle\TranslationBundle, spec_path: src/Sylius/Bundle/TranslationBundle, src_path: src/Sylius/Bundle/TranslationBundle }
|
||||
UiBundle: { namespace: Sylius\Bundle\UiBundle, psr4_prefix: Sylius\Bundle\UiBundle, spec_path: src/Sylius/Bundle/UiBundle, src_path: src/Sylius/Bundle/UiBundle }
|
||||
UserBundle: { namespace: Sylius\Bundle\UserBundle, psr4_prefix: Sylius\Bundle\UserBundle, spec_path: src/Sylius/Bundle/UserBundle, src_path: src/Sylius/Bundle/UserBundle }
|
||||
VariationBundle: { namespace: Sylius\Bundle\VariationBundle, psr4_prefix: Sylius\Bundle\VariationBundle, spec_path: src/Sylius/Bundle/VariationBundle, src_path: src/Sylius/Bundle/VariationBundle }
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ class SyliusCoreExtension extends AbstractResourceExtension implements PrependEx
|
|||
'sylius_taxonomy',
|
||||
'sylius_user',
|
||||
'sylius_variation',
|
||||
'sylius_translation',
|
||||
'sylius_rbac',
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ abstract class Kernel extends BaseKernel
|
|||
public function registerBundles()
|
||||
{
|
||||
$bundles = [
|
||||
new \Sylius\Bundle\TranslationBundle\SyliusTranslationBundle(),
|
||||
new \Sylius\Bundle\InstallerBundle\SyliusInstallerBundle(),
|
||||
new \Sylius\Bundle\OrderBundle\SyliusOrderBundle(),
|
||||
new \Sylius\Bundle\MoneyBundle\SyliusMoneyBundle(),
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ sylius_search:
|
|||
type: terms
|
||||
value: ~
|
||||
|
||||
sylius_translation:
|
||||
sylius_resource:
|
||||
default_locale: %sylius.locale%
|
||||
locale_provider: sylius.translation.locale_provider.contextual
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
### v0.17.0
|
||||
|
||||
* Integrated TranslationBundle.
|
||||
|
||||
### v0.16.0
|
||||
|
||||
* Introduce Factory for all resources.
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ class Configuration implements ConfigurationInterface
|
|||
|
||||
$this->addResourcesSection($rootNode);
|
||||
$this->addSettingsSection($rootNode);
|
||||
$this->addTranslationsSection($rootNode);
|
||||
|
||||
return $treeBuilder;
|
||||
}
|
||||
|
|
@ -144,4 +145,18 @@ class Configuration implements ConfigurationInterface
|
|||
->end()
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ArrayNodeDefinition $node
|
||||
*/
|
||||
private function addTranslationsSection(ArrayNodeDefinition $node)
|
||||
{
|
||||
$node
|
||||
->children()
|
||||
->scalarNode('driver')->defaultValue(SyliusResourceBundle::DRIVER_DOCTRINE_ORM)->end()
|
||||
->scalarNode('default_locale')->isRequired()->cannotBeEmpty()->end()
|
||||
->scalarNode('locale_provider')->defaultValue('sylius.translation.locale_provider.request')->end()
|
||||
->end()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
namespace Sylius\Bundle\ResourceBundle\DependencyInjection\Driver;
|
||||
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Sylius\Component\Resource\Factory\TranslatableFactoryInterface;
|
||||
use Sylius\Component\Resource\Metadata\Metadata;
|
||||
use Sylius\Component\Resource\Metadata\MetadataInterface;
|
||||
use Sylius\Component\Resource\Factory\TranslatableFactoryInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\DependencyInjection\Parameter;
|
||||
|
|
@ -116,15 +116,12 @@ abstract class AbstractDriver implements DriverInterface
|
|||
*/
|
||||
protected function addFactory(ContainerBuilder $container, MetadataInterface $metadata)
|
||||
{
|
||||
$translatableFactoryInterface = TranslatableFactoryInterface::class;
|
||||
|
||||
$factoryClass = $metadata->getClass('factory');
|
||||
$modelClass = $metadata->getClass('model');
|
||||
|
||||
$reflection = new \ReflectionClass($factoryClass);
|
||||
$definition = new Definition($factoryClass);
|
||||
|
||||
if (interface_exists($translatableFactoryInterface) && $reflection->implementsInterface($translatableFactoryInterface)) {
|
||||
if (in_array(TranslatableFactoryInterface::class, class_implements($factoryClass))) {
|
||||
$decoratedDefinition = new Definition(Factory::class);
|
||||
$decoratedDefinition->setArguments([$modelClass]);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
namespace Sylius\Bundle\ResourceBundle\DependencyInjection\Driver\Doctrine;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\Doctrine\ODM\MongoDB\TranslatableRepository;
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Bundle\TranslationBundle\Doctrine\ODM\MongoDB\TranslatableResourceRepository;
|
||||
use Sylius\Component\Resource\Metadata\MetadataInterface;
|
||||
use Sylius\Component\Resource\Model\TranslatableInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
|
|
@ -41,13 +41,10 @@ class DoctrineODMDriver extends AbstractDoctrineDriver
|
|||
{
|
||||
$modelClass = $metadata->getClass('model');
|
||||
|
||||
$reflection = new \ReflectionClass($modelClass);
|
||||
$translatableInterface = TranslatableInterface::class;
|
||||
$translatable = interface_exists($translatableInterface) && $reflection->implementsInterface($translatableInterface);
|
||||
|
||||
$repositoryClass = $translatable
|
||||
? TranslatableResourceRepository::class
|
||||
: new Parameter('sylius.mongodb_odm.repository.class');
|
||||
$repositoryClass = in_array(TranslatableInterface::class, class_implements($modelClass))
|
||||
? TranslatableRepository::class
|
||||
: new Parameter('sylius.mongodb.odm.repository.class')
|
||||
;
|
||||
|
||||
if ($metadata->hasClass('repository')) {
|
||||
$repositoryClass = $metadata->getClass('repository');
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Sylius\Bundle\ResourceBundle\DependencyInjection\Driver\Doctrine;
|
|||
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Component\Resource\Metadata\MetadataInterface;
|
||||
use Sylius\Component\Resource\Repository\TranslatableResourceRepositoryInterface;
|
||||
use Sylius\Component\Resource\Repository\TranslatableRepositoryInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\DependencyInjection\Parameter;
|
||||
|
|
@ -54,10 +54,9 @@ class DoctrinePHPCRDriver extends AbstractDoctrineDriver
|
|||
$definition->setLazy(!$repositoryReflection->isFinal());
|
||||
|
||||
if ($metadata->hasParameter('translation')) {
|
||||
$translatableRepositoryInterface = TranslatableResourceRepositoryInterface::class;
|
||||
$translationConfig = $metadata->getParameter('translation');
|
||||
|
||||
if (interface_exists($translatableRepositoryInterface) && $repositoryReflection->implementsInterface($translatableRepositoryInterface)) {
|
||||
if (in_array(TranslatableRepositoryInterface::class, class_implements($repositoryClass))) {
|
||||
if (isset($translationConfig['fields'])) {
|
||||
$definition->addMethodCall('setTranslatableFields', [$translationConfig['fields']]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
namespace Sylius\Bundle\ResourceBundle\DependencyInjection;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\DependencyInjection\Driver\DriverProvider;
|
||||
use Sylius\Bundle\TranslationBundle\SyliusTranslationBundle;
|
||||
use Sylius\Component\Resource\Metadata\Metadata;
|
||||
use Symfony\Component\Config\Definition\Processor;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
|
|
@ -48,6 +47,9 @@ class SyliusResourceExtension extends Extension implements PrependExtensionInter
|
|||
$loader->load($configFile);
|
||||
}
|
||||
|
||||
$container->setParameter('sylius.translation.default_locale', $config['default_locale']);
|
||||
$container->setAlias('sylius.translation.locale_provider', $config['locale_provider']);
|
||||
|
||||
foreach ($config['resources'] as $alias => $resourceConfig) {
|
||||
$metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
|
||||
|
||||
|
|
@ -57,7 +59,7 @@ class SyliusResourceExtension extends Extension implements PrependExtensionInter
|
|||
|
||||
DriverProvider::get($metadata)->load($container, $metadata);
|
||||
|
||||
if ($metadata->hasParameter('translation') && class_exists(SyliusTranslationBundle::class)) {
|
||||
if ($metadata->hasParameter('translation')) {
|
||||
$alias = $alias.'_translation';
|
||||
$resourceConfig = array_merge(['driver' => $resourceConfig['driver']], $resourceConfig['translation']);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,19 +9,18 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\Doctrine\ODM\MongoDB;
|
||||
namespace Sylius\Bundle\ResourceBundle\Doctrine\ODM\MongoDB;
|
||||
|
||||
use Doctrine\MongoDB\Query\Builder as QueryBuilder;
|
||||
use Sylius\Bundle\ResourceBundle\Doctrine\ODM\MongoDB\DocumentRepository;
|
||||
use Sylius\Component\Resource\Provider\LocaleProviderInterface;
|
||||
use Sylius\Component\Resource\Repository\TranslatableResourceRepositoryInterface;
|
||||
use Sylius\Component\Resource\Repository\TranslatableRepositoryInterface;
|
||||
|
||||
/**
|
||||
* Doctrine ORM driver translatable entity repository.
|
||||
*
|
||||
* @author Ivannis Suárez Jérez <ivannis.suarez@gmail.com>
|
||||
*/
|
||||
class TranslatableResourceRepository extends DocumentRepository implements TranslatableResourceRepositoryInterface
|
||||
class TranslatableRepository extends DocumentRepository implements TranslatableRepositoryInterface
|
||||
{
|
||||
/**
|
||||
* @var LocaleProviderInterface
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\EventListener;
|
||||
namespace Sylius\Bundle\ResourceBundle\EventListener;
|
||||
|
||||
use Sylius\Component\Resource\Metadata\RegistryInterface;
|
||||
use Sylius\Component\Resource\Provider\LocaleProviderInterface;
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\EventListener;
|
||||
namespace Sylius\Bundle\ResourceBundle\EventListener;
|
||||
|
||||
use Doctrine\Common\EventSubscriber;
|
||||
use Doctrine\ODM\MongoDB\Event\LifecycleEventArgs;
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\EventListener;
|
||||
namespace Sylius\Bundle\ResourceBundle\EventListener;
|
||||
|
||||
use Doctrine\Common\EventSubscriber;
|
||||
use Doctrine\ORM\Event\LifecycleEventArgs;
|
||||
|
|
@ -17,8 +17,8 @@ use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
|
|||
use Doctrine\ORM\Events;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||
use Sylius\Component\Translation\Model\TranslatableInterface;
|
||||
use Sylius\Component\Translation\Model\TranslationInterface;
|
||||
use Sylius\Component\Resource\Model\TranslatableInterface;
|
||||
use Sylius\Component\Resource\Model\TranslationInterface;
|
||||
|
||||
/**
|
||||
* @author Gonzalo Vilaseca <gvilaseca@reiss.co.uk>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\GedmoHandler;
|
||||
namespace Sylius\Bundle\ResourceBundle\GedmoHandler;
|
||||
|
||||
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\Provider;
|
||||
namespace Sylius\Bundle\ResourceBundle\Provider;
|
||||
|
||||
use Sylius\Component\Resource\Provider\LocaleProviderInterface;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
|
|
@ -37,6 +37,10 @@
|
|||
<parameter key="sylius.validator.enabled.class">Sylius\Bundle\ResourceBundle\Validator\EnabledValidator</parameter>
|
||||
<parameter key="sylius.validator.disabled.class">Sylius\Bundle\ResourceBundle\Validator\DisabledValidator</parameter>
|
||||
|
||||
<parameter key="sylius.translation.translatable_listener.doctrine.orm.class">Sylius\Bundle\ResourceBundle\EventListener\ORMTranslatableListener</parameter>
|
||||
<parameter key="sylius.translation.translatable_listener.doctrine.mongodb_odm.class">Sylius\Bundle\ResourceBundle\EventListener\MongoDBODMTranslatableListener</parameter>
|
||||
<parameter key="sylius.translation.locale_provider.request.class">Sylius\Bundle\ResourceBundle\Provider\RequestLocaleProvider</parameter>
|
||||
|
||||
<!-- Sylius State Machine -->
|
||||
<parameter key="sylius.state_machine.class">Sylius\Component\Resource\StateMachine\StateMachine</parameter>
|
||||
|
||||
|
|
@ -77,5 +81,21 @@
|
|||
<service id="sylius.validator.disabled" class="%sylius.validator.disabled.class%">
|
||||
<tag name="validator.constraint_validator" alias="sylius_resource_disabled_validator" />
|
||||
</service>
|
||||
|
||||
<service id="sylius.translation.translatable_listener.doctrine.orm" class="%sylius.translation.translatable_listener.doctrine.orm.class%">
|
||||
<argument type="service" id="sylius.resource_registry" />
|
||||
<argument type="service" id="sylius.translation.locale_provider" />
|
||||
<tag name="doctrine.event_subscriber" connection="default" priority="99" />
|
||||
</service>
|
||||
<service id="sylius.translation.translatable_listener.doctrine.mongodb_odm" class="%sylius.translation.translatable_listener.doctrine.mongodb_odm.class%">
|
||||
<argument type="service" id="sylius.resource_registry" />
|
||||
<argument type="service" id="sylius.translation.locale_provider" />
|
||||
<tag name="doctrine_mongodb.odm.event_subscriber" connection="default" priority="99" />
|
||||
</service>
|
||||
|
||||
<service id="sylius.translation.locale_provider.request" class="%sylius.translation.locale_provider.request.class%">
|
||||
<argument>%sylius.translation.default_locale%</argument>
|
||||
<tag name="kernel.event_subscriber" priority="98" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
|
|
|||
|
|
@ -51,8 +51,9 @@
|
|||
"phpspec/phpspec": "^2.4",
|
||||
"phpunit/phpunit": "^4.8",
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
"symfony/form": "^2.7",
|
||||
"symfony/validator": "^2.7",
|
||||
"sylius/rbac-bundle": "0.18.*",
|
||||
"sylius/translation-bundle": "0.18.*",
|
||||
"twig/twig": "~1.11"
|
||||
},
|
||||
"suggest": {
|
||||
|
|
@ -60,7 +61,6 @@
|
|||
"doctrine/orm": "^2.4.8,<2.5",
|
||||
"doctrine/phpcr-bundle": "~1.1",
|
||||
"sylius/rbac-bundle": "0.18.*",
|
||||
"sylius/translation-bundle": "0.18.*"
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
</field>
|
||||
<field name="permalink" column="permalink" type="string" unique="false">
|
||||
<gedmo:slug fields="name" unique="false" >
|
||||
<gedmo:handler class="Sylius\Bundle\TranslationBundle\GedmoHandler\TranslationSlugHandler">
|
||||
<gedmo:handler class="Sylius\Bundle\ResourceBundle\GedmoHandler\TranslationSlugHandler">
|
||||
<gedmo:handler-option name="relationField" value="translatable"/>
|
||||
<gedmo:handler-option name="relationParentRelationField" value="parent"/>
|
||||
<gedmo:handler-option name="parentFieldMethod" value="getPermalink"/>
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
vendor/
|
||||
bin/
|
||||
|
||||
composer.phar
|
||||
composer.lock
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
language: php
|
||||
|
||||
sudo: false
|
||||
|
||||
php:
|
||||
- 7.0
|
||||
- 5.6
|
||||
- 5.5
|
||||
|
||||
before_install:
|
||||
- echo "memory_limit=2048M" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
|
||||
- phpenv config-rm xdebug.ini || true
|
||||
|
||||
install:
|
||||
- composer install --no-interaction --prefer-source
|
||||
|
||||
script:
|
||||
- bin/phpspec run -fpretty --verbose
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
### v0.13.0
|
||||
|
||||
* Initial dev release.
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Paweł Jędrzejewski
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\DependencyInjection;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
|
||||
/**
|
||||
* @author Gonzalo Vilaseca <gvilaseca@reiss.co.uk>
|
||||
*/
|
||||
class Configuration implements ConfigurationInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getConfigTreeBuilder()
|
||||
{
|
||||
$treeBuilder = new TreeBuilder();
|
||||
$rootNode = $treeBuilder->root('sylius_translation');
|
||||
|
||||
$rootNode
|
||||
->children()
|
||||
->scalarNode('driver')->defaultValue(SyliusResourceBundle::DRIVER_DOCTRINE_ORM)->end()
|
||||
->scalarNode('default_locale')->isRequired()->cannotBeEmpty()->end()
|
||||
->scalarNode('locale_provider')->defaultValue('sylius.translation.locale_provider.request')->end()
|
||||
->end()
|
||||
;
|
||||
|
||||
return $treeBuilder;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Paweł Jędrzejewski
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle\DependencyInjection;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\DependencyInjection\Extension\AbstractResourceExtension;
|
||||
use Symfony\Component\Config\Definition\Processor;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
|
||||
/**
|
||||
* @author Gonzalo Vilaseca <gvilaseca@reiss.co.uk>
|
||||
*/
|
||||
class SyliusTranslationExtension extends AbstractResourceExtension
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load(array $config, ContainerBuilder $container)
|
||||
{
|
||||
$processor = new Processor();
|
||||
$config = $processor->processConfiguration(new Configuration(), $config);
|
||||
|
||||
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
||||
$configFiles = [
|
||||
'services.xml',
|
||||
];
|
||||
|
||||
foreach ($configFiles as $configFile) {
|
||||
$loader->load($configFile);
|
||||
}
|
||||
|
||||
$container->setParameter('sylius.translation.default_locale', $config['default_locale']);
|
||||
$container->setAlias('sylius.translation.locale_provider', $config['locale_provider']);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
SyliusTranslationBundle [](http://travis-ci.org/Sylius/SyliusTranslationBundle)
|
||||
=======================
|
||||
|
||||
...
|
||||
|
||||
Sylius
|
||||
------
|
||||
|
||||
**Sylius** - Modern ecommerce for Symfony2. Visit [Sylius.org](http://sylius.org).
|
||||
|
||||
[phpspec](http://phpspec.net) examples
|
||||
--------------------------------------
|
||||
|
||||
```bash
|
||||
$ composer install
|
||||
$ bin/phpspec run -fpretty
|
||||
```
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Documentation is available on [**docs.sylius.org**](http://docs.sylius.org/en/latest/bundles/SyliusTranslationBundle/index.html).
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
All informations about contributing to Sylius can be found on [this page](http://docs.sylius.org/en/latest/contributing/index.html).
|
||||
|
||||
Mailing lists
|
||||
-------------
|
||||
|
||||
### Users
|
||||
|
||||
Questions? Feel free to ask on [users mailing list](http://groups.google.com/group/sylius).
|
||||
|
||||
### Developers
|
||||
|
||||
To contribute and develop this bundle, use the [developers mailing list](http://groups.google.com/group/sylius-dev).
|
||||
|
||||
Sylius twitter account
|
||||
----------------------
|
||||
|
||||
If you want to keep up with updates, [follow the official Sylius account on twitter](http://twitter.com/Sylius).
|
||||
|
||||
Bug tracking
|
||||
------------
|
||||
|
||||
This bundle uses [GitHub issues](https://github.com/Sylius/Sylius/issues).
|
||||
If you have found bug, please create an issue.
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
||||
Releases will be numbered with the format `major.minor.patch`.
|
||||
|
||||
And constructed with the following guidelines.
|
||||
|
||||
* Breaking backwards compatibility bumps the major.
|
||||
* New additions without breaking backwards compatibility bumps the minor.
|
||||
* Bug fixes and misc changes bump the patch.
|
||||
|
||||
For more information on SemVer, please visit [semver.org website](http://semver.org/).
|
||||
This versioning method is same for all **Sylius** bundles and applications.
|
||||
|
||||
MIT License
|
||||
-----------
|
||||
|
||||
License can be found [here](https://github.com/Sylius/SyliusTranslationBundle/blob/master/Resources/meta/LICENSE).
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
The bundle was originally created by [Paweł Jędrzejewski](http://pjedrzejewski.com).
|
||||
See the list of [contributors](https://github.com/Sylius/SyliusTranslationBundle/contributors).
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
This file is part of the Sylius package.
|
||||
|
||||
(c) Paweł Jędrzejewski
|
||||
|
||||
For the full copyright and license information, please view the LICENSE
|
||||
file that was distributed with this source code.
|
||||
|
||||
-->
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services
|
||||
http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<parameters>
|
||||
<parameter key="sylius.translation.translatable_listener.doctrine.orm.class">Sylius\Bundle\TranslationBundle\EventListener\ORMTranslatableListener</parameter>
|
||||
<parameter key="sylius.translation.translatable_listener.doctrine.mongodb_odm.class">Sylius\Bundle\TranslationBundle\EventListener\MongoDBODMTranslatableListener</parameter>
|
||||
<parameter key="sylius.translation.locale_provider.request.class">Sylius\Bundle\TranslationBundle\Provider\RequestLocaleProvider</parameter>
|
||||
</parameters>
|
||||
|
||||
<services>
|
||||
<service id="sylius.translation.translatable_listener.doctrine.orm" class="%sylius.translation.translatable_listener.doctrine.orm.class%">
|
||||
<argument type="service" id="sylius.resource_registry" />
|
||||
<argument type="service" id="sylius.translation.locale_provider" />
|
||||
<tag name="doctrine.event_subscriber" connection="default" priority="99" />
|
||||
</service>
|
||||
<service id="sylius.translation.translatable_listener.doctrine.mongodb_odm" class="%sylius.translation.translatable_listener.doctrine.mongodb_odm.class%">
|
||||
<argument type="service" id="sylius.resource_registry" />
|
||||
<argument type="service" id="sylius.translation.locale_provider" />
|
||||
<tag name="doctrine_mongodb.odm.event_subscriber" connection="default" priority="99" />
|
||||
</service>
|
||||
|
||||
<service id="sylius.translation.locale_provider.request" class="%sylius.translation.locale_provider.request.class%">
|
||||
<argument>%sylius.translation.default_locale%</argument>
|
||||
<tag name="kernel.event_subscriber" priority="98" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Paweł Jędrzejewski
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\TranslationBundle;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\AbstractResourceBundle;
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
|
||||
class SyliusTranslationBundle extends AbstractResourceBundle
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function getSupportedDrivers()
|
||||
{
|
||||
return [
|
||||
SyliusResourceBundle::DRIVER_DOCTRINE_ORM,
|
||||
SyliusResourceBundle::DRIVER_DOCTRINE_MONGODB_ODM,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getModelNamespace()
|
||||
{
|
||||
return 'Sylius\Component\Resource\Model';
|
||||
}
|
||||
}
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
"name": "sylius/translation-bundle",
|
||||
"type": "symfony-bundle",
|
||||
"description": "Sylius translation bundle",
|
||||
"keywords": ["translation", "sylius"],
|
||||
"homepage": "http://sylius.org",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Paweł Jędrzejewski",
|
||||
"homepage": "http://pjedrzejewski.com"
|
||||
},
|
||||
{
|
||||
"name": "Sylius project",
|
||||
"homepage": "http://sylius.org"
|
||||
},
|
||||
{
|
||||
"name": "Community contributions",
|
||||
"homepage": "http://github.com/Sylius/Sylius/contributors"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^5.5.9|^7.0",
|
||||
|
||||
"stof/doctrine-extensions-bundle": "~1.1",
|
||||
"sylius/translation": "0.18.*",
|
||||
"sylius/resource-bundle": "0.18.*",
|
||||
"symfony/framework-bundle": "^2.7.7"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpspec/phpspec": "^2.4",
|
||||
"akeneo/phpspec-skip-example-extension": "~1.2",
|
||||
"doctrine/orm": "^2.4.8,<2.5",
|
||||
"symfony/form": "^2.7",
|
||||
"symfony/validator": "^2.7"
|
||||
},
|
||||
"config": {
|
||||
"bin-dir": "bin"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Sylius\\Bundle\\TranslationBundle\\": "" }
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": { "Sylius\\Bundle\\TranslationBundle\\spec\\": "spec/" }
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.18-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
suites:
|
||||
main:
|
||||
namespace: Sylius\Bundle\TranslationBundle
|
||||
psr4_prefix: Sylius\Bundle\TranslationBundle
|
||||
src_path: .
|
||||
|
||||
extensions:
|
||||
- Akeneo\SkipExampleExtension
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
### v0.17.0
|
||||
|
||||
* Integrated Translation component
|
||||
|
||||
### v0.16.0
|
||||
|
||||
* Introduce Factory and FactoryInterface for creating new resources.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
namespace Sylius\Component\Resource\Factory;
|
||||
|
||||
use Sylius\Component\Resource\Exception\UnexpectedTypeException;
|
||||
use Sylius\Component\Resource\Factory\FactoryInterface;
|
||||
use Sylius\Component\Resource\Model\TranslatableInterface;
|
||||
use Sylius\Component\Resource\Provider\LocaleProviderInterface;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,6 @@
|
|||
|
||||
namespace Sylius\Component\Resource\Factory;
|
||||
|
||||
use Sylius\Component\Resource\Factory\FactoryInterface;
|
||||
|
||||
/**
|
||||
* Interface for factories creating translatable resources.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -11,12 +11,10 @@
|
|||
|
||||
namespace Sylius\Component\Resource\Repository;
|
||||
|
||||
use Sylius\Component\Resource\Repository\RepositoryInterface;
|
||||
|
||||
/**
|
||||
* @author Gonzalo Vilaseca <gvilaseca@reiss.co.uk>
|
||||
*/
|
||||
interface TranslatableResourceRepositoryInterface extends RepositoryInterface
|
||||
interface TranslatableRepositoryInterface extends RepositoryInterface
|
||||
{
|
||||
/**
|
||||
* @param array $translatableFields
|
||||
Loading…
Add table
Reference in a new issue