Merge pull request #1609 from shyim/elasticsearch-dsl

Add ElasticSearchDSL package
This commit is contained in:
Tomáš Votruba 2019-06-13 18:31:07 +02:00 committed by GitHub
commit 8f0f829960
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 203 additions and 2 deletions

View File

@ -73,7 +73,8 @@
"Rector\\NetteTesterToPHPUnit\\": "packages/NetteTesterToPHPUnit/src",
"Rector\\Nette\\": "packages/Nette/src",
"Rector\\SOLID\\": "packages/SOLID/src",
"Rector\\Legacy\\": "packages/Legacy/src"
"Rector\\Legacy\\": "packages/Legacy/src",
"Rector\\ElasticSearchDSL\\": "packages/ElasticSearchDSL/src"
}
},
"autoload-dev": {
@ -109,7 +110,8 @@
"Rector\\NetteTesterToPHPUnit\\Tests\\": "packages/NetteTesterToPHPUnit/tests",
"Rector\\Nette\\Tests\\": "packages/Nette/tests",
"Rector\\SOLID\\Tests\\": "packages/SOLID/tests",
"Rector\\Legacy\\Tests\\": "packages/Legacy/tests"
"Rector\\Legacy\\Tests\\": "packages/Legacy/tests",
"Rector\\ElasticSearchDSL\\Tests\\": "packages/ElasticSearchDSL/tests"
},
"classmap": [
"packages/Symfony/tests/Rector/FrameworkBundle/AbstractToConstructorInjectionRectorSource",

View File

@ -0,0 +1,44 @@
# https://github.com/ongr-io/ElasticsearchDSL/blob/5.x/CHANGELOG.md
services:
Rector\ElasticSearchDSL\Rector\MethodCall\MigrateFilterToQueryRector: ~
Rector\Rector\Class_\RenameClassRector:
ONGR\ElasticsearchDSL\Query\BoolQuery: ONGR\ElasticsearchDSL\Query\Compound\BoolQuery
ONGR\ElasticsearchDSL\Query\BoostingQuery: ONGR\ElasticsearchDSL\Query\Compound\BoostingQuery
ONGR\ElasticsearchDSL\Query\ConstantScoreQuery: ONGR\ElasticsearchDSL\Query\Compound\ConstantScoreQuery
ONGR\ElasticsearchDSL\Query\DisMaxQuery: ONGR\ElasticsearchDSL\Query\Compound\DisMaxQuery
ONGR\ElasticsearchDSL\Query\FunctionScoreQuery: ONGR\ElasticsearchDSL\Query\Compound\FunctionScoreQuery
ONGR\ElasticsearchDSL\Query\IndicesQuery: ONGR\ElasticsearchDSL\Query\Compound\IndicesQuery
ONGR\ElasticsearchDSL\Query\MatchQuery: ONGR\ElasticsearchDSL\Query\FullText\MatchQuery
ONGR\ElasticsearchDSL\Query\CommonTermsQuery: ONGR\ElasticsearchDSL\Query\FullText\CommonTermsQuery
ONGR\ElasticsearchDSL\Query\MatchPhrasePrefixQuery: ONGR\ElasticsearchDSL\Query\FullText\MatchPhrasePrefixQuery
ONGR\ElasticsearchDSL\Query\MatchPhraseQuery: ONGR\ElasticsearchDSL\Query\FullText\MatchPhraseQuery
ONGR\ElasticsearchDSL\Query\MultiMatchQuery: ONGR\ElasticsearchDSL\Query\FullText\MultiMatchQuery
ONGR\ElasticsearchDSL\Query\QueryStringQuery: ONGR\ElasticsearchDSL\Query\FullText\QueryStringQuery
ONGR\ElasticsearchDSL\Query\SimpleQueryStringQuery: ONGR\ElasticsearchDSL\Query\FullText\SimpleQueryStringQuery
ONGR\ElasticsearchDSL\Query\ExistsQuery: ONGR\ElasticsearchDSL\Query\TermLevel\ExistsQuery
ONGR\ElasticsearchDSL\Query\PrefixQuery: ONGR\ElasticsearchDSL\Query\TermLevel\PrefixQuery
ONGR\ElasticsearchDSL\Query\RangeQuery: ONGR\ElasticsearchDSL\Query\TermLevel\RangeQuery
ONGR\ElasticsearchDSL\Query\TermQuery: ONGR\ElasticsearchDSL\Query\TermLevel\TermQuery
ONGR\ElasticsearchDSL\Query\TermsQuery: ONGR\ElasticsearchDSL\Query\TermLevel\TermsQuery
ONGR\ElasticsearchDSL\Query\WildcardQuery: ONGR\ElasticsearchDSL\Query\TermLevel\WildcardQuery
ONGR\ElasticsearchDSL\Query\FuzzyQuery: ONGR\ElasticsearchDSL\Query\TermLevel\FuzzyQuery
ONGR\ElasticsearchDSL\Query\RegexpQuery: ONGR\ElasticsearchDSL\Query\TermLevel\RegexpQuery
ONGR\ElasticsearchDSL\Query\TypeQuery: ONGR\ElasticsearchDSL\Query\TermLevel\TypeQuery
ONGR\ElasticsearchDSL\Query\GeoBoundingBoxQuery: ONGR\ElasticsearchDSL\Query\Geo\GeoBoundingBoxQuery
ONGR\ElasticsearchDSL\Query\GeoDistanceQuery: ONGR\ElasticsearchDSL\Query\Geo\GeoDistanceQuery
ONGR\ElasticsearchDSL\Query\GeoDistanceRangeQuery: ONGR\ElasticsearchDSL\Query\Geo\GeoDistanceRangeQuery
ONGR\ElasticsearchDSL\Query\GeoPolygonQuery: ONGR\ElasticsearchDSL\Query\Geo\GeoPolygonQuery
ONGR\ElasticsearchDSL\Query\GeoShapeQuery: ONGR\ElasticsearchDSL\Query\Geo\GeoShapeQuery
ONGR\ElasticsearchDSL\Query\HasChildQuery: ONGR\ElasticsearchDSL\Query\Joining\HasChildQuery
ONGR\ElasticsearchDSL\Query\HasParentQuery: ONGR\ElasticsearchDSL\Query\Joining\HasParentQuery
ONGR\ElasticsearchDSL\Query\NestedQuery: ONGR\ElasticsearchDSL\Query\Joining\NestedQuery
ONGR\ElasticsearchDSL\Query\SpanContainingQuery: ONGR\ElasticsearchDSL\Query\Span\SpanContainingQuery
ONGR\ElasticsearchDSL\Query\SpanFirstQuery: ONGR\ElasticsearchDSL\Query\Span\SpanFirstQuery
ONGR\ElasticsearchDSL\Query\SpanMultiTermQuery: ONGR\ElasticsearchDSL\Query\Span\SpanMultiTermQuery
ONGR\ElasticsearchDSL\Query\SpanNearQuery: ONGR\ElasticsearchDSL\Query\Span\SpanNearQuery
ONGR\ElasticsearchDSL\Query\SpanNotQuery: ONGR\ElasticsearchDSL\Query\Span\SpanNotQuery
ONGR\ElasticsearchDSL\Query\SpanOrQuery: ONGR\ElasticsearchDSL\Query\Span\SpanOrQuery
ONGR\ElasticsearchDSL\Query\SpanWithinQuery: ONGR\ElasticsearchDSL\Query\Span\SpanWithinQuery
ONGR\ElasticsearchDSL\Query\MoreLikeThisQuery: ONGR\ElasticsearchDSL\Query\Specialized\MoreLikeThisQuery
ONGR\ElasticsearchDSL\Query\ScriptQuery: ONGR\ElasticsearchDSL\Query\Specialized\ScriptQuery
ONGR\ElasticsearchDSL\Query\TemplateQuery: ONGR\ElasticsearchDSL\Query\Specialized\TemplateQuery

View File

@ -1,4 +1,8 @@
# See https://github.com/shopware/shopware/blob/5.6/UPGRADE-5.6.md
imports:
- { resource: '../elasticsearch-dsl/elasticsearch-dsl50.yaml' }
services:
Rector\Shopware\Rector\MethodCall\ReplaceEnlightResponseWithSymfonyResponseRector: ~
Rector\Rector\MethodCall\RenameMethodCallRector:

View File

@ -0,0 +1,7 @@
services:
_defaults:
public: true
autowire: true
Rector\ElasticSearchDSL\:
resource: '../src'

View File

@ -0,0 +1,80 @@
<?php declare(strict_types=1);
namespace Rector\ElasticSearchDSL\Rector\MethodCall;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\NodeDumper;
use Rector\Rector\AbstractRector;
use Rector\RectorDefinition\CodeSample;
use Rector\RectorDefinition\RectorDefinition;
/**
* @see https://github.com/ongr-io/ElasticsearchDSL/blob/5.x/CHANGELOG.md
*/
final class MigrateFilterToQueryRector extends AbstractRector
{
public function getDefinition(): RectorDefinition
{
return new RectorDefinition('Migrates addFilter to addQuery', [
new CodeSample(
<<<'CODE_SAMPLE'
class SomeClass
{
public function run()
{
$search = new \ONGR\ElasticsearchDSL\Search();
$search->addFilter(
new \ONGR\ElasticsearchDSL\Query\TermsQuery('categoryIds', [1, 2])
);
}
}
CODE_SAMPLE
,
<<<'CODE_SAMPLE'
class SomeClass
{
public function run()
{
$search = new \ONGR\ElasticsearchDSL\Search();
$search->addQuery(
new \ONGR\ElasticsearchDSL\Query\TermsQuery('categoryIds', [1, 2]),
\ONGR\ElasticsearchDSL\Query\Compound\BoolQuery::FILTER
);
}
}
CODE_SAMPLE
)
]);
}
/**
* @return string[]
*/
public function getNodeTypes(): array
{
return [MethodCall::class];
}
/**
* @param MethodCall $node
*/
public function refactor(Node $node): ?Node
{
if (! $this->isType($node, 'ONGR\ElasticsearchDSL\Search')) {
return null;
}
if (! $this->isName($node, 'addFilter')) {
return null;
}
$node->name = new Node\Identifier('addQuery');
$node->args[1] = new Node\Arg(new Node\Expr\ClassConstFetch(new Node\Name\FullyQualified('ONGR\ElasticsearchDSL\Query\Compound\BoolQuery'), new Node\Identifier('FILTER')));
return $node;
}
}

View File

@ -0,0 +1,43 @@
<?php
namespace Rector\ElasticSearchDSL\Tests\Rector\MethodCall\MigrateFilterToQueryRector\Fixture;
class SomeClass
{
public function run()
{
$search = new \ONGR\ElasticsearchDSL\Search();
$search->addFilter(
new \ONGR\ElasticsearchDSL\Query\TermsQuery('categoryIds', [1, 2])
);
$search->addQuery(
new \ONGR\ElasticsearchDSL\Query\TermsQuery('categoryIds', [1, 2]), \ONGR\ElasticsearchDSL\Query\Compound\BoolQuery::FILTER
);
}
}
?>
-----
<?php
namespace Rector\ElasticSearchDSL\Tests\Rector\MethodCall\MigrateFilterToQueryRector\Fixture;
class SomeClass
{
public function run()
{
$search = new \ONGR\ElasticsearchDSL\Search();
$search->addQuery(
new \ONGR\ElasticsearchDSL\Query\TermsQuery('categoryIds', [1, 2]), \ONGR\ElasticsearchDSL\Query\Compound\BoolQuery::FILTER
);
$search->addQuery(
new \ONGR\ElasticsearchDSL\Query\TermsQuery('categoryIds', [1, 2]), \ONGR\ElasticsearchDSL\Query\Compound\BoolQuery::FILTER
);
}
}
?>

View File

@ -0,0 +1,21 @@
<?php declare(strict_types=1);
namespace Rector\ElasticSearchDSL\Tests\Rector\MethodCall\MigrateFilterToQueryRector;
use Rector\ElasticSearchDSL\Rector\MethodCall\MigrateFilterToQueryRector;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;
final class MigrateFilterToQueryRectorTest extends AbstractRectorTestCase
{
public function test(): void
{
$this->doTestFiles([
__DIR__ . '/Fixture/fixture.php.inc'
]);
}
protected function getRectorClass(): string
{
return MigrateFilterToQueryRector::class;
}
}