Skip to content

Commit dd4483e

Browse files
committed
Remove autowiring
1 parent 3841fb0 commit dd4483e

File tree

6 files changed

+59
-32
lines changed

6 files changed

+59
-32
lines changed

config/services.xml

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,35 @@
44
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
55

66
<services>
7-
<defaults autowire="true" autoconfigure="true" />
7+
<service id="meilisearch.engine" class="Meilisearch\Bundle\Engine">
8+
<argument type="service" id="meilisearch.client" />
9+
</service>
810

9-
<prototype namespace="Meilisearch\Bundle\Command\" resource="../src/Command" />
11+
<!-- After bumping to Symfony >5.1 deeprecate public services into private services -->
12+
<service id="meilisearch.service" class="Meilisearch\Bundle\Services\MeilisearchService" public="true">
13+
<argument /><!-- After bumping to Symfony 5.1 use type="abstract" -->
14+
<argument type="service" id="meilisearch.engine" />
15+
<argument type="collection" /><!-- After bumping to Symfony 5.1 use type="abstract" -->
16+
<argument type="service" id="property_accessor" />
17+
</service>
18+
<service id="search.service" alias="meilisearch.service" public="true">
19+
<deprecated package="meilisearch/search-bundle" version="0.14">The "%alias_id%" service alias is deprecated. Use "meilisearch.service" instead.</deprecated>
20+
</service>
1021

11-
<service id="meilisearch.search_indexer_subscriber"
12-
class="Meilisearch\Bundle\EventListener\DoctrineEventSubscriber"
13-
public="true">
22+
<service id="meilisearch.search_indexer_subscriber" class="Meilisearch\Bundle\EventListener\DoctrineEventSubscriber" public="true">
1423
<argument type="service" id="meilisearch.service" />
1524
</service>
1625
<service id="search.search_indexer_subscriber" alias="meilisearch.search_indexer_subscriber">
1726
<deprecated package="meilisearch/search-bundle" version="0.14">The "%alias_id%" service alias is deprecated. Use "meilisearch.search_indexer_subscriber" instead.</deprecated>
1827
</service>
1928

2029
<service id="meilisearch.client" class="Meilisearch\Client" public="true" lazy="true">
21-
<argument key="$url">%meili_url%</argument>
22-
<argument key="$apiKey">%meili_api_key%</argument>
23-
<argument key="$httpClient" type="service" id="psr18.http_client" on-invalid="ignore" />
24-
<argument key="$clientAgents" type="collection">
25-
<argument>%meili_symfony_version%</argument>
26-
</argument>
30+
<argument /><!-- url -->
31+
<argument /><!-- api key -->
32+
<argument type="service" id="psr18.http_client" on-invalid="ignore" /><!-- http client -->
33+
<argument>null</argument><!-- request factory -->
34+
<argument /><!-- client agents -->
35+
<argument>null</argument><!-- stream factory -->
2736
</service>
2837
<service id="search.client" alias="meilisearch.client" public="true">
2938
<deprecated package="meilisearch/search-bundle" version="0.14">The "%alias_id%" service alias is deprecated. Use "meilisearch.client" instead.</deprecated>
@@ -34,5 +43,28 @@
3443
<deprecated package="meilisearch/search-bundle" version="0.14">The "%alias_id%" service alias is deprecated. Use "meilisearch.client" instead.</deprecated>
3544
</service>
3645
<service id="Meilisearch\Bundle\SearchService" alias="meilisearch.service" />
46+
47+
<service id="Meilisearch\Bundle\Command\MeilisearchClearCommand">
48+
<argument type="service" id="meilisearch.service" />
49+
<tag name="console.command" />
50+
</service>
51+
52+
<service id="Meilisearch\Bundle\Command\MeilisearchCreateCommand">
53+
<argument type="service" id="meilisearch.service" />
54+
<argument type="service" id="meilisearch.client" />
55+
<tag name="console.command" />
56+
</service>
57+
58+
<service id="Meilisearch\Bundle\Command\MeilisearchDeleteCommand">
59+
<argument type="service" id="meilisearch.service" />
60+
<tag name="console.command" />
61+
</service>
62+
63+
<service id="Meilisearch\Bundle\Command\MeilisearchImportCommand">
64+
<argument type="service" id="meilisearch.service" />
65+
<argument type="service" id="doctrine" />
66+
<argument type="service" id="meilisearch.client" />
67+
<tag name="console.command" />
68+
</service>
3769
</services>
3870
</container>

src/DependencyInjection/Configuration.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ public function getConfigTreeBuilder(): TreeBuilder
1717

1818
$rootNode
1919
->children()
20-
->scalarNode('url')->end()
20+
->scalarNode('url')->cannotBeEmpty()->end()
2121
->scalarNode('api_key')->end()
2222
->scalarNode('prefix')
23-
->defaultValue(null)
23+
->defaultNull()
2424
->end()
2525
->scalarNode('nbResults')
2626
->defaultValue(20)

src/DependencyInjection/MeilisearchExtension.php

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44

55
namespace Meilisearch\Bundle\DependencyInjection;
66

7-
use Meilisearch\Bundle\Engine;
87
use Meilisearch\Bundle\MeilisearchBundle;
9-
use Meilisearch\Bundle\Services\MeilisearchService;
108
use Symfony\Component\Config\FileLocator;
119
use Symfony\Component\DependencyInjection\ContainerBuilder;
12-
use Symfony\Component\DependencyInjection\Definition;
1310
use Symfony\Component\DependencyInjection\Loader;
1411
use Symfony\Component\DependencyInjection\Reference;
1512
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
@@ -47,15 +44,14 @@ public function load(array $configs, ContainerBuilder $container): void
4744
$container->removeDefinition('meilisearch.search_indexer_subscriber');
4845
}
4946

50-
$engineDefinition = new Definition(Engine::class, [new Reference('meilisearch.client')]);
47+
$container->findDefinition('meilisearch.client')
48+
->replaceArgument(0, $config['url'])
49+
->replaceArgument(1, $config['api_key'])
50+
->replaceArgument(4, [MeilisearchBundle::qualifiedVersion()]);
5151

52-
$searchDefinition = (new Definition(
53-
MeilisearchService::class,
54-
[new Reference($config['serializer']), $engineDefinition, $config]
55-
));
56-
57-
$container->setDefinition('meilisearch.service', $searchDefinition->setPublic(true));
58-
$container->setAlias('search.service', 'meilisearch.service')->setPublic(true);
52+
$container->findDefinition('meilisearch.service')
53+
->replaceArgument(0, new Reference($config['serializer']))
54+
->replaceArgument(2, $config);
5955
}
6056

6157
/**

src/Services/MeilisearchService.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
use Meilisearch\Bundle\SearchService;
1616
use Symfony\Component\Config\Definition\Exception\Exception;
1717
use Symfony\Component\PropertyAccess\PropertyAccess;
18-
use Symfony\Component\PropertyAccess\PropertyAccessor;
18+
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
1919
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
2020

2121
final class MeilisearchService implements SearchService
2222
{
2323
private NormalizerInterface $normalizer;
2424
private Engine $engine;
2525
private Collection $configuration;
26-
private PropertyAccessor $propertyAccessor;
26+
private PropertyAccessorInterface $propertyAccessor;
2727
/**
2828
* @var list<class-string>
2929
*/
@@ -42,12 +42,12 @@ final class MeilisearchService implements SearchService
4242
private array $classToSerializerGroup;
4343
private array $indexIfMapping;
4444

45-
public function __construct(NormalizerInterface $normalizer, Engine $engine, array $configuration)
45+
public function __construct(NormalizerInterface $normalizer, Engine $engine, array $configuration, PropertyAccessorInterface $propertyAccessor = null)
4646
{
4747
$this->normalizer = $normalizer;
4848
$this->engine = $engine;
4949
$this->configuration = new Collection($configuration);
50-
$this->propertyAccessor = PropertyAccess::createPropertyAccessor();
50+
$this->propertyAccessor = $propertyAccessor ?? PropertyAccess::createPropertyAccessor();
5151

5252
$this->setSearchableEntities();
5353
$this->setAggregatorsAndEntitiesAggregators();

tests/Integration/DependencyInjectionTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ protected function getContainerExtensions(): array
1919

2020
public function testHasMeilisearchVersionDefinitionAfterLoad(): void
2121
{
22-
$this->load();
22+
$this->load(['url' => 'http://meilisearch:7700', 'api_key' => null]);
2323

24-
$this->assertContainerBuilderHasServiceDefinitionWithArgument('meilisearch.client', '$clientAgents', ['%meili_symfony_version%']);
24+
$this->assertContainerBuilderHasServiceDefinitionWithArgument('meilisearch.client', 4, [MeilisearchBundle::qualifiedVersion()]);
2525
}
2626

2727
public function testHasMeilisearchVersionFromConstantAfterLoad(): void
2828
{
29-
$this->load();
29+
$this->load(['url' => 'http://meilisearch:7700', 'api_key' => null]);
3030

3131
$this->assertContainerBuilderHasParameter('meili_symfony_version', MeilisearchBundle::qualifiedVersion());
3232
}

tests/Kernel.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ protected function configureContainer(ContainerBuilder $container, LoaderInterfa
3131
} else {
3232
$loader->load(__DIR__.'/config/config_php7.yaml');
3333
}
34-
$loader->load(__DIR__.'/../config/services.xml');
3534
$loader->load(__DIR__.'/config/meilisearch.yaml');
3635

3736
if (defined(ConnectionFactory::class.'::DEFAULT_SCHEME_MAP')) {

0 commit comments

Comments
 (0)