Skip to content

Commit c2cf4b1

Browse files
Fix regression in symfony 2 compatibility (#10)
1 parent 1952316 commit c2cf4b1

File tree

6 files changed

+62
-26
lines changed

6 files changed

+62
-26
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ matrix:
66
- language: php
77
php: 5.6
88
env:
9-
- SYMFONY=^3.4
9+
- SYMFONY=^2.8
1010
- ES_VERSION=^5.0
1111
- ES_DOWNLOAD_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.14.zip"
1212
- ENABLE_SWAP=true

DependencyInjection/Compiler/ManagerPass.php

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,27 @@ public function process(ContainerBuilder $container)
1717
$managers[$key] = $container->getDefinition($key);
1818
}
1919

20-
$container->getDefinition('es.command.cache_clear')->setArgument('$managers', $managers);
21-
$container->getDefinition('es.command.document_generate')->setArgument('$managers', $managers);
22-
$container->getDefinition('es.command.index_create')->setArgument('$managers', $managers);
23-
$container->getDefinition('es.command.index_export')->setArgument('$managers', $managers);
24-
$container->getDefinition('es.command.index_import')->setArgument('$managers', $managers);
25-
$container->getDefinition('es.command.index_drop')->setArgument('$managers', $managers);
20+
$this->addManagers($container, 'es.command.cache_clear', $managers);
21+
$this->addManagers($container, 'es.command.document_generate', $managers);
22+
$this->addManagers($container, 'es.command.index_create', $managers);
23+
$this->addManagers($container, 'es.command.index_export', $managers);
24+
$this->addManagers($container, 'es.command.index_import', $managers);
25+
$this->addManagers($container, 'es.command.index_drop', $managers);
26+
}
27+
28+
private function addManagers(ContainerBuilder $container, $definitionName, array $managers)
29+
{
30+
$definition = $container->getDefinition($definitionName);
31+
32+
if (method_exists($definition, 'setArgument')) {
33+
$definition->setArgument('$managers', $managers);
34+
35+
return;
36+
}
37+
38+
$arguments = $definition->getArguments();
39+
$arguments[] = $managers;
40+
41+
$definition->setArguments($arguments);
2642
}
2743
}

Profiler/ElasticsearchProfiler.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
use Symfony\Component\HttpFoundation\Response;
1818
use Symfony\Component\HttpKernel\DataCollector\DataCollector;
1919
use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
20+
use Symfony\Component\HttpKernel\DataCollector\Util\ValueExporter;
21+
use Symfony\Component\HttpKernel\Kernel;
2022
use Symfony\Component\VarDumper\Caster\CutStub;
2123
use Symfony\Component\VarDumper\Cloner\Data;
2224
use Symfony\Component\VarDumper\Cloner\Stub;
@@ -113,6 +115,18 @@ public function getQueries()
113115
return $this->cloneVar($this->data['queries']);
114116
}
115117

118+
/**
119+
* Backward compatibility Layer can be removed when Symfony 2.8 is dropped.
120+
*/
121+
protected function cloneVar($var)
122+
{
123+
if (class_exists(Kernel::class) && Kernel::VERSION_ID < 30000) {
124+
return $var;
125+
}
126+
127+
return parent::cloneVar($var);
128+
}
129+
116130
/**
117131
* @return array
118132
*/

Resources/config/services.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ services:
8585
es.command.cache_clear:
8686
class: 'ONGR\ElasticsearchBundle\Command\CacheClearCommand'
8787
tags:
88-
- console.command
88+
- { name: 'console.command', command: 'ongr:es:cache:clear' }
8989

9090
es.command.document_generate:
9191
class: 'ONGR\ElasticsearchBundle\Command\DocumentGenerateCommand'
@@ -95,30 +95,30 @@ services:
9595
- '@es.metadata_collector'
9696
- '@es.annotations.cached_reader'
9797
tags:
98-
- console.command
98+
- { name: 'console.command', command: 'ongr:es:document:generate' }
9999

100100
es.command.index_create:
101101
class: 'ONGR\ElasticsearchBundle\Command\IndexCreateCommand'
102102
arguments:
103103
- '@es.client.index_suffix_finder'
104104
tags:
105-
- console.command
105+
- { name: 'console.command', command: 'ongr:es:index:create' }
106106

107107
es.command.index_export:
108108
class: 'ONGR\ElasticsearchBundle\Command\IndexExportCommand'
109109
arguments:
110110
- '@es.export'
111111
tags:
112-
- console.command
112+
- { name: 'console.command', command: 'ongr:es:index:export' }
113113

114114
es.command.index_import:
115115
class: 'ONGR\ElasticsearchBundle\Command\IndexImportCommand'
116116
arguments:
117117
- '@es.import'
118118
tags:
119-
- console.command
119+
- { name: 'console.command', command: 'ongr:es:index:import' }
120120

121121
es.command.index_drop:
122122
class: 'ONGR\ElasticsearchBundle\Command\IndexDropCommand'
123123
tags:
124-
- console.command
124+
- { name: 'console.command', command: 'ongr:es:index:drop' }

Tests/Functional/Profiler/ElasticsearchProfilerTest.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use ONGR\ElasticsearchBundle\Test\AbstractElasticsearchTestCase;
1919
use Symfony\Component\HttpFoundation\Request;
2020
use Symfony\Component\HttpFoundation\Response;
21+
use Symfony\Component\HttpKernel\Kernel;
2122
use Symfony\Component\VarDumper\Cloner\Data;
2223

2324
class ElasticsearchProfilerTest extends AbstractElasticsearchTestCase
@@ -85,7 +86,9 @@ public function testGetQueries()
8586

8687
// guard
8788
$queries = $this->getCollector()->getQueries();
88-
$this->assertInstanceOf(Data::class, $queries);
89+
if (Kernel::VERSION_ID >= 30000) {
90+
$this->assertInstanceOf(Data::class, $queries);
91+
}
8992
$this->assertCount(1, $queries);
9093

9194
$queries = $this->readAttribute($this->getCollector(), 'data')['queries'];
@@ -120,7 +123,9 @@ public function testGetTermQuery()
120123

121124
// guard
122125
$queries = $this->getCollector()->getQueries();
123-
$this->assertInstanceOf(Data::class, $queries);
126+
if (Kernel::VERSION_ID >= 30000) {
127+
$this->assertInstanceOf(Data::class, $queries);
128+
}
124129
$this->assertCount(1, $queries);
125130

126131
$queries = $this->readAttribute($this->getCollector(), 'data')['queries'];
@@ -185,7 +190,9 @@ public function testMatchAllQuery()
185190

186191
// guard
187192
$queries = $this->getCollector()->getQueries();
188-
$this->assertInstanceOf(Data::class, $queries);
193+
if (Kernel::VERSION_ID >= 30000) {
194+
$this->assertInstanceOf(Data::class, $queries);
195+
}
189196
$this->assertCount(1, $queries);
190197

191198
$queries = $this->readAttribute($this->getCollector(), 'data')['queries'];

composer.json

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,19 @@
2929
"handcraftedinthealps/elasticsearch-dsl": "^5.0.7.1|^6.2.0.1|^7.2.0.1"
3030
},
3131
"require-dev": {
32-
"elasticsearch/elasticsearch": "~5.0|~6.0|~7.0",
3332
"mikey179/vfsstream": "~1.4",
3433
"squizlabs/php_codesniffer": "~2.0",
3534
"satooshi/php-coveralls": "~1.0 || ~2.0",
36-
"symfony/browser-kit" : "^3.4|^4|^5",
37-
"symfony/expression-language" : "^3.4|^4|^5",
38-
"symfony/twig-bundle": "^3.4|^4|^5",
39-
"symfony/serializer": "^3.4|^4|^5",
40-
"symfony/yaml": "^3.4|^4|^5",
35+
"symfony/browser-kit" : "^2.8|^3.4|^4|^5",
36+
"symfony/expression-language" : "^2.8|^3.4|^4|^5",
37+
"symfony/twig-bundle": "^2.8|^3.4|^4|^5",
38+
"symfony/serializer": "^2.8|^3.4|^4|^5",
39+
"symfony/yaml": "^2.8|^3.4|^4|^5",
4140
"symfony/phpunit-bridge": "^5.1",
42-
"symfony/dependency-injection": "^3.4|^4|^5",
43-
"symfony/validator": "^3.4|^4|^5",
44-
"symfony/options-resolver": "^3.4|^4|^5",
45-
"symfony/var-dumper": "^3.4|^4|^5"
41+
"symfony/dependency-injection": "^2.8|^3.4|^4|^5",
42+
"symfony/validator": "^2.8|^3.4|^4|^5",
43+
"symfony/options-resolver": "^2.8|^3.4|^4|^5",
44+
"symfony/var-dumper": "^2.8|^3.4|^4|^5"
4645
},
4746
"autoload": {
4847
"psr-4": { "ONGR\\ElasticsearchBundle\\": "" },

0 commit comments

Comments
 (0)