Skip to content

Commit

Permalink
Clean services definition
Browse files Browse the repository at this point in the history
  • Loading branch information
Olivier Dolbeau committed Nov 26, 2019
1 parent 3765450 commit 0377263
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 119 deletions.
27 changes: 0 additions & 27 deletions DependencyInjection/MisdPhoneNumberExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;

Expand All @@ -38,31 +37,5 @@ public function load(array $configs, ContainerBuilder $container)
if (interface_exists('Symfony\Component\Serializer\Normalizer\NormalizerInterface')) {
$loader->load('serializer.xml');
}

$this->setFactory($container->getDefinition('libphonenumber.phone_number_util'));
$this->setFactory($container->getDefinition('libphonenumber.phone_number_offline_geocoder'));
$this->setFactory($container->getDefinition('libphonenumber.short_number_info'));
$this->setFactory($container->getDefinition('libphonenumber.phone_number_to_carrier_mapper'));
$this->setFactory($container->getDefinition('libphonenumber.phone_number_to_time_zones_mapper'));
}

/**
* Set Factory of FactoryClass & FactoryMethod based on Symfony version.
*
* to be removed when dependency on Symfony DependencyInjection is bumped to 2.6 and
* services inlined in services.xml
*
* @param $def
*/
private function setFactory(Definition $def)
{
if (method_exists($def, 'setFactory')) {
// to be inlined in services.xml when dependency on Symfony DependencyInjection is bumped to 2.6
$def->setFactory([$def->getClass(), 'getInstance']);
} else {
// to be removed when dependency on Symfony DependencyInjection is bumped to 2.6
$def->setFactoryClass($def->getClass());
$def->setFactoryMethod('getInstance');
}
}
}
8 changes: 1 addition & 7 deletions Resources/config/form.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,10 @@
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>
<!-- .class parameters are deprecated and will be removed in 2.0 -->
<parameter key="misd_phone_number.form.type.class">Misd\PhoneNumberBundle\Form\Type\PhoneNumberType</parameter>
</parameters>

<services>
<service id="misd_phone_number.form.type" class="Misd\PhoneNumberBundle\Form\Type\PhoneNumberType">
<service id="Misd\PhoneNumberBundle\Form\Type\PhoneNumberType">
<tag name="form.type" alias="phone_number"/>
</service>
<service id="Misd\PhoneNumberBundle\Form\Type\PhoneNumberType" alias="misd_phone_number.form.type"/>
</services>

</container>
5 changes: 2 additions & 3 deletions Resources/config/serializer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

<services>
<service id="misd_phone_number.serializer.normalizer" class="Misd\PhoneNumberBundle\Serializer\Normalizer\PhoneNumberNormalizer">
<service id="Misd\PhoneNumberBundle\Serializer\Normalizer\PhoneNumberNormalizer">
<tag name="serializer.normalizer" />
<argument type="service" id="libphonenumber.phone_number_util" />
<argument type="service" id="libphonenumber\PhoneNumberUtil" />
</service>
<service id="Misd\PhoneNumberBundle\Serializer\Normalizer\PhoneNumberNormalizer" alias="misd_phone_number.serializer.normalizer"/>
</services>

</container>
34 changes: 15 additions & 19 deletions Resources/config/services.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,27 @@
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>
<!-- .class parameters are deprecated and will be removed in 2.0 -->
<parameter key="libphonenumber.phone_number_util.class">libphonenumber\PhoneNumberUtil</parameter>
<parameter key="libphonenumber.phone_number_offline_geocoder.class">libphonenumber\geocoding\PhoneNumberOfflineGeocoder</parameter>
<parameter key="libphonenumber.short_number_info.class">libphonenumber\ShortNumberInfo</parameter>
<parameter key="libphonenumber.phone_number_to_carrier_mapper.class">libphonenumber\PhoneNumberToCarrierMapper</parameter>
<parameter key="libphonenumber.phone_number_to_time_zones_mapper.class">libphonenumber\PhoneNumberToTimeZonesMapper</parameter>
</parameters>

<services>

<service id="libphonenumber.phone_number_util" class="libphonenumber\PhoneNumberUtil"/>
<service id="libphonenumber\PhoneNumberUtil" alias="libphonenumber.phone_number_util"/>
<service id="libphonenumber\PhoneNumberUtil">
<factory class="libphonenumber\PhoneNumberUtil" method="getInstance"/>
</service>

<service id="libphonenumber.phone_number_offline_geocoder" class="libphonenumber\geocoding\PhoneNumberOfflineGeocoder"/>
<service id="libphonenumber\geocoding\PhoneNumberOfflineGeocoder" alias="libphonenumber.phone_number_offline_geocoder"/>
<service id="libphonenumber\geocoding\PhoneNumberOfflineGeocoder">
<factory class="libphonenumber\geocoding\PhoneNumberOfflineGeocoder" method="getInstance"/>
</service>

<service id="libphonenumber.short_number_info" class="libphonenumber\ShortNumberInfo"/>
<service id="libphonenumber\ShortNumberInfo" alias="libphonenumber.short_number_info"/>
<service id="libphonenumber\ShortNumberInfo">
<factory class="libphonenumber\ShortNumberInfo" method="getInstance"/>
</service>

<service id="libphonenumber.phone_number_to_carrier_mapper" class="libphonenumber\PhoneNumberToCarrierMapper"/>
<service id="libphonenumber\PhoneNumberToCarrierMapper" alias="libphonenumber.phone_number_to_carrier_mapper"/>
<service id="libphonenumber\PhoneNumberToCarrierMapper">
<factory class="libphonenumber\PhoneNumberToCarrierMapper" method="getInstance"/>
</service>

<service id="libphonenumber.phone_number_to_time_zones_mapper" class="libphonenumber\PhoneNumberToTimeZonesMapper"/>
<service id="libphonenumber\PhoneNumberToTimeZonesMapper" alias="libphonenumber.phone_number_to_time_zones_mapper"/>
<service id="libphonenumber\PhoneNumberToTimeZonesMapper">
<factory class="libphonenumber\PhoneNumberToTimeZonesMapper" method="getInstance"/>
</service>

</services>

Expand Down
20 changes: 4 additions & 16 deletions Resources/config/twig.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,15 @@
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>
<!-- .class parameters are deprecated and will be removed in 2.0 -->
<parameter key="misd_phone_number.templating.helper.class">Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper</parameter>
<parameter key="misd_phone_number.templating.helper.format.class">%misd_phone_number.templating.helper.class%</parameter>
<parameter key="misd_phone_number.twig.extension.class">Misd\PhoneNumberBundle\Twig\Extension\PhoneNumberHelperExtension</parameter>
<parameter key="misd_phone_number.twig.extension.format.class">%misd_phone_number.twig.extension.class%</parameter>
</parameters>

<services>
<service id="misd_phone_number.templating.helper"
class="Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper">
<argument type="service" id="libphonenumber.phone_number_util"/>
<service id="Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper">
<argument type="service" id="libphonenumber\PhoneNumberUtil"/>
</service>
<service id="Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper" alias="misd_phone_number.templating.helper"/>

<service id="misd_phone_number.twig.extension.format" class="Misd\PhoneNumberBundle\Twig\Extension\PhoneNumberHelperExtension"
public="false">
<service id="Misd\PhoneNumberBundle\Twig\Extension\PhoneNumberHelperExtension" public="false">
<tag name="twig.extension"/>
<argument type="service" id="misd_phone_number.templating.helper"/>
<argument type="service" id="Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper"/>
</service>
<service id="Misd\PhoneNumberBundle\Twig\Extension\PhoneNumberHelperExtension" alias="misd_phone_number.twig.extension.format"/>
</services>

</container>
57 changes: 10 additions & 47 deletions Tests/DependencyInjection/MisdPhoneNumberExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,61 +33,24 @@ public function testLoad()

$extension->load([], $this->container);

$this->assertHasService(
'libphonenumber.phone_number_util',
'libphonenumber\PhoneNumberUtil'
);
$this->assertTrue($this->container->has('libphonenumber\PhoneNumberUtil'));
if (class_exists('libphonenumber\geocoding\PhoneNumberOfflineGeocoder') && extension_loaded('intl')) {
$this->assertHasService(
'libphonenumber.phone_number_offline_geocoder',
'libphonenumber\geocoding\PhoneNumberOfflineGeocoder'
);
$this->assertTrue($this->container->has('libphonenumber\geocoding\PhoneNumberOfflineGeocoder'));
}
if (class_exists('libphonenumber\ShortNumberInfo')) {
$this->assertHasService(
'libphonenumber.short_number_info',
'libphonenumber\ShortNumberInfo'
);
$this->assertTrue($this->container->has('libphonenumber\ShortNumberInfo'));
}
if (class_exists('libphonenumber\PhoneNumberToCarrierMapper') && extension_loaded('intl')) {
$this->assertHasService(
'libphonenumber.phone_number_to_carrier_mapper',
'libphonenumber\PhoneNumberToCarrierMapper'
);
$this->assertTrue($this->container->has('libphonenumber\PhoneNumberToCarrierMapper'));
}
if (class_exists('libphonenumber\PhoneNumberToTimeZonesMapper')) {
$this->assertHasService(
'libphonenumber.phone_number_to_time_zones_mapper',
'libphonenumber\PhoneNumberToTimeZonesMapper'
);
$this->assertTrue($this->container->has('libphonenumber\PhoneNumberToTimeZonesMapper'));
}
$this->assertHasService(
'misd_phone_number.templating.helper',
'Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper'
);
$this->assertTrue($this->container->has('Misd\PhoneNumberBundle\Templating\Helper\PhoneNumberHelper'));
$this->assertTrue($this->container->has('Misd\PhoneNumberBundle\Form\Type\PhoneNumberType'));

$this->assertHasService(
'misd_phone_number.form.type',
'Misd\PhoneNumberBundle\Form\Type\PhoneNumberType'
);
$this->assertServiceHasTag(
'misd_phone_number.form.type',
'form.type',
['alias' => 'phone_number']
);
}

protected function assertHasService($id, $instanceOf)
{
$this->assertTrue($this->container->has($id));
$this->assertInstanceOf($instanceOf, $this->container->get($id));
}

protected function assertServiceHasTag($id, $tag, $attributes = [])
{
$services = $this->container->findTaggedServiceIds($tag);

$this->assertArrayHasKey($id, $services);
$this->assertContains($attributes, $services[$id]);
$services = $this->container->findTaggedServiceIds('form.type');
$this->assertArrayHasKey('Misd\PhoneNumberBundle\Form\Type\PhoneNumberType', $services);
$this->assertContains(['alias' => 'phone_number'], $services['Misd\PhoneNumberBundle\Form\Type\PhoneNumberType']);
}
}

0 comments on commit 0377263

Please sign in to comment.