mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 09:02:12 +00:00
Merge pull request #423 from stloyd/feature/di_prepend
Expose `driver` option into bundles when CoreBundle is used
This commit is contained in:
commit
1a0ff1eab6
2 changed files with 34 additions and 14 deletions
|
|
@ -7,7 +7,6 @@ sylius_installer:
|
|||
model: Sylius\Bundle\CoreBundle\Model\User
|
||||
|
||||
sylius_money:
|
||||
driver: doctrine/orm
|
||||
currency: %sylius.currency%
|
||||
locale: %sylius.locale%
|
||||
|
||||
|
|
@ -17,11 +16,9 @@ sylius_cart:
|
|||
item:
|
||||
form: Sylius\Bundle\CoreBundle\Form\Type\CartItemType
|
||||
|
||||
sylius_settings:
|
||||
driver: doctrine/orm
|
||||
sylius_settings: ~
|
||||
|
||||
sylius_taxonomies:
|
||||
driver: doctrine/orm
|
||||
classes:
|
||||
taxonomy:
|
||||
model: Sylius\Bundle\CoreBundle\Model\Taxonomy
|
||||
|
|
@ -31,7 +28,6 @@ sylius_taxonomies:
|
|||
form: Sylius\Bundle\CoreBundle\Form\Type\TaxonType
|
||||
|
||||
sylius_product:
|
||||
driver: doctrine/orm
|
||||
classes:
|
||||
product:
|
||||
model: Sylius\Bundle\CoreBundle\Model\Product
|
||||
|
|
@ -46,14 +42,12 @@ sylius_variable_product:
|
|||
form: Sylius\Bundle\CoreBundle\Form\Type\VariantType
|
||||
|
||||
sylius_taxation:
|
||||
driver: doctrine/orm
|
||||
classes:
|
||||
tax_rate:
|
||||
model: Sylius\Bundle\CoreBundle\Model\TaxRate
|
||||
form: Sylius\Bundle\CoreBundle\Form\Type\TaxRateType
|
||||
|
||||
sylius_shipping:
|
||||
driver: doctrine/orm
|
||||
classes:
|
||||
shipment:
|
||||
model: Sylius\Bundle\CoreBundle\Model\Shipment
|
||||
|
|
@ -63,11 +57,9 @@ sylius_shipping:
|
|||
model: Sylius\Bundle\CoreBundle\Model\ShippingMethod
|
||||
form: Sylius\Bundle\CoreBundle\Form\Type\ShippingMethodType
|
||||
|
||||
sylius_promotions:
|
||||
driver: doctrine/orm
|
||||
sylius_promotions: ~
|
||||
|
||||
sylius_inventory:
|
||||
driver: doctrine/orm
|
||||
backorders: true
|
||||
classes:
|
||||
unit:
|
||||
|
|
@ -76,19 +68,16 @@ sylius_inventory:
|
|||
model: %sylius.model.variant.class%
|
||||
|
||||
sylius_payments:
|
||||
driver: doctrine/orm
|
||||
gateways:
|
||||
dummy: Test
|
||||
stripe: Stripe
|
||||
|
||||
sylius_addressing:
|
||||
driver: doctrine/orm
|
||||
classes:
|
||||
address:
|
||||
controller: Sylius\Bundle\WebBundle\Controller\Frontend\Account\AddressController
|
||||
|
||||
sylius_sales:
|
||||
driver: doctrine/orm
|
||||
classes:
|
||||
order:
|
||||
model: Sylius\Bundle\CoreBundle\Model\Order
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ namespace Sylius\Bundle\CoreBundle\DependencyInjection;
|
|||
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
|
||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
use Symfony\Component\Config\Definition\Processor;
|
||||
|
|
@ -23,7 +24,7 @@ use Sylius\Bundle\CoreBundle\SyliusCoreBundle;
|
|||
*
|
||||
* @author Paweł Jędrzejewski <pjedrzejewski@diweb.pl>
|
||||
*/
|
||||
class SyliusCoreExtension extends Extension
|
||||
class SyliusCoreExtension extends Extension implements PrependExtensionInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
@ -60,6 +61,36 @@ class SyliusCoreExtension extends Extension
|
|||
$container->setParameter('sylius.config.classes', $classes);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function prepend(ContainerBuilder $container)
|
||||
{
|
||||
$configs = $container->getExtensionConfig($this->getAlias());
|
||||
$config = $this->processConfiguration(new Configuration(), $configs);
|
||||
|
||||
if (isset($config['driver'])) {
|
||||
$config = array('driver' => $config['driver']);
|
||||
foreach ($container->getExtensions() as $name => $extension) {
|
||||
switch ($name) {
|
||||
case 'sylius_addressing':
|
||||
case 'sylius_inventory':
|
||||
case 'sylius_money':
|
||||
case 'sylius_payments':
|
||||
case 'sylius_product':
|
||||
case 'sylius_promotions':
|
||||
case 'sylius_sales':
|
||||
case 'sylius_settings':
|
||||
case 'sylius_shipping':
|
||||
case 'sylius_taxation':
|
||||
case 'sylius_taxonomies':
|
||||
$container->prependExtensionConfig($name, $config);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remap class parameters.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue