Skip to content

Commit 58dfca1

Browse files
authored
Merge pull request #406 from Chris53897/feature/switch-to-php-based-configs
Feature/switch to php based configs
2 parents c0bfb3a + deb6127 commit 58dfca1

File tree

3 files changed

+115
-95
lines changed

3 files changed

+115
-95
lines changed

config/services.php

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
use Meilisearch\Bundle\Command\MeilisearchClearCommand;
6+
use Meilisearch\Bundle\Command\MeilisearchCreateCommand;
7+
use Meilisearch\Bundle\Command\MeilisearchDeleteCommand;
8+
use Meilisearch\Bundle\Command\MeilisearchImportCommand;
9+
use Meilisearch\Bundle\Command\MeilisearchUpdateSettingsCommand;
10+
use Meilisearch\Bundle\Engine;
11+
use Meilisearch\Bundle\EventListener\DoctrineEventSubscriber;
12+
use Meilisearch\Bundle\SearchService;
13+
use Meilisearch\Bundle\Services\MeilisearchService;
14+
use Meilisearch\Bundle\Services\SettingsUpdater;
15+
use Meilisearch\Bundle\Services\UnixTimestampNormalizer;
16+
use Meilisearch\Client;
17+
18+
return static function (ContainerConfigurator $container) {
19+
$services = $container->services();
20+
21+
$services->set('meilisearch.engine', Engine::class)
22+
->args([service('meilisearch.client')]);
23+
24+
$services->alias(Engine::class, 'meilisearch.engine');
25+
26+
$services->set('meilisearch.service', MeilisearchService::class)
27+
->public()
28+
->args([
29+
abstract_arg('normalizer'),
30+
service('meilisearch.engine'),
31+
abstract_arg('configuration'),
32+
service('property_accessor'),
33+
]);
34+
35+
$services->alias('search.service', 'meilisearch.service')
36+
->public()
37+
->deprecate('meilisearch/search-bundle', '0.14', 'The "%alias_id%" service alias is deprecated. Use "meilisearch.service" instead.');
38+
39+
$services->set('meilisearch.search_indexer_subscriber', DoctrineEventSubscriber::class)
40+
->public()
41+
->args([service('meilisearch.service')]);
42+
43+
$services->alias('search.search_indexer_subscriber', 'meilisearch.search_indexer_subscriber')
44+
->deprecate('meilisearch/search-bundle', '0.14', 'The "%alias_id%" service alias is deprecated. Use "meilisearch.search_indexer_subscriber" instead.');
45+
46+
$services->set('meilisearch.client', Client::class)
47+
->public()
48+
->lazy()
49+
->args([
50+
abstract_arg('url defined in MeilisearchExtension'),
51+
abstract_arg('api key defined in MeilisearchExtension'),
52+
abstract_arg('http client defined in MeilisearchExtension'),
53+
null,
54+
abstract_arg('client agents defined in MeilisearchExtension'),
55+
null,
56+
]);
57+
58+
$services->alias('search.client', 'meilisearch.client')
59+
->public()
60+
->deprecate('meilisearch/search-bundle', '0.14', 'The "%alias_id%" service alias is deprecated. Use "meilisearch.client" instead.');
61+
62+
$services->alias(Client::class, 'meilisearch.client')
63+
->public();
64+
65+
$services->alias(SearchService::class, 'meilisearch.service');
66+
67+
$services->set('meilisearch.settings_updater', SettingsUpdater::class)
68+
->args([
69+
service('meilisearch.service'),
70+
service('meilisearch.client'),
71+
service('event_dispatcher'),
72+
]);
73+
74+
$services->alias(SettingsUpdater::class, 'meilisearch.settings_updater');
75+
76+
$services->set(MeilisearchClearCommand::class)
77+
->args([service('meilisearch.service')])
78+
->tag('console.command', ['command' => 'meilisearch:clear|meili:clear', 'description' => 'Clear the index documents']);
79+
80+
$services->set(MeilisearchCreateCommand::class)
81+
->args([
82+
service('meilisearch.service'),
83+
service('meilisearch.client'),
84+
service('meilisearch.settings_updater'),
85+
service('event_dispatcher'),
86+
])
87+
->tag('console.command', ['command' => 'meilisearch:create|meili:create', 'description' => 'Create indexes']);
88+
89+
$services->set(MeilisearchDeleteCommand::class)
90+
->args([service('meilisearch.service')])
91+
->tag('console.command', ['command' => 'meilisearch:delete|meili:delete', 'description' => 'Delete the indexes']);
92+
93+
$services->set(MeilisearchImportCommand::class)
94+
->args([
95+
service('meilisearch.service'),
96+
service('doctrine'),
97+
service('meilisearch.client'),
98+
service('meilisearch.settings_updater'),
99+
service('event_dispatcher'),
100+
])
101+
->tag('console.command', ['command' => 'meilisearch:import|meili:import', 'description' => 'Import given entity into search engine']);
102+
103+
$services->set(MeilisearchUpdateSettingsCommand::class)
104+
->args([
105+
service('meilisearch.service'),
106+
service('meilisearch.settings_updater'),
107+
service('event_dispatcher'),
108+
])
109+
->tag('console.command', ['command' => 'meilisearch:update-settings', 'description' => 'Push settings to meilisearch']);
110+
111+
$services->set(UnixTimestampNormalizer::class)
112+
->tag('serializer.normalizer');
113+
};

config/services.xml

Lines changed: 0 additions & 93 deletions
This file was deleted.

src/DependencyInjection/MeilisearchExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ final class MeilisearchExtension extends Extension
1818
{
1919
public function load(array $configs, ContainerBuilder $container): void
2020
{
21-
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../../config'));
22-
$loader->load('services.xml');
21+
$loader = new Loader\PhpFileLoader($container, new FileLocator(__DIR__.'/../../config'));
22+
$loader->load('services.php');
2323

2424
$configuration = new Configuration();
2525
$config = $this->processConfiguration($configuration, $configs);

0 commit comments

Comments
 (0)