Skip to content

Commit 95ef63c

Browse files
authored
[BC] Introduce type specific interfaces (#224)
* Introduce type specific interfaces * Apply php-cs-fixer changes * fix namespace * Import correct interfaces * More interface related problems * Update search provider * Fix more name * Fix elementservice * Add upgrade notes --------- Co-authored-by: mattamon <[email protected]>
1 parent a236dcb commit 95ef63c

15 files changed

+118
-23
lines changed

doc/01_Installation/02_Upgrade.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,24 @@ Following steps are necessary during updating to newer versions.
66
- Execute the following command to reindex all elements to be able to use all new features:
77

88
```bin/console generic-data-index:update:index```
9+
10+
## Upgrade to 2.0.0
11+
12+
### BC-Breaks
13+
14+
#### Interface changes
15+
- Added `PermissionTypes $permissionType` parameter with default type `PermissionTypes::LIST` to
16+
- `AssetSearchServiceInterface::search` method
17+
- `DocumentSearchServiceInterface::search` method
18+
- `DataObjectSearchServiceInterface::search` method
19+
- `ElementSearchServiceInterface::search` method
20+
- Search services `byId` methods now return elements based on the `PermissionTypes::VIEW` permission
21+
- Added type specific interfaces for searches to avoid mixing up different search types in search services
22+
- `AssetSearch` now implements `AssetSearchInterface`
23+
- `DocumentSearch` now implements `DocumentSearchInterface`
24+
- `ElementSearch` now implements `ElementSearchInterface`
25+
- Search services now require the specific search type for the search
26+
- `AssetSearchServiceInterface::search` now requires a `AssetSearchInterface`
27+
- `DocumentSearchServiceInterface::search` now requires a `DocumentSearchInterface`
28+
- `ElementSearchServiceInterface::search` now requires a `ElementSearchInterface`
29+
- `SearchProviderInterface` now returns type specific search interfaces

src/Model/Search/Asset/AssetSearch.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818

1919
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\BaseSearch;
2020

21-
final class AssetSearch extends BaseSearch
21+
final class AssetSearch extends BaseSearch implements AssetSearchInterface
2222
{
2323
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
/**
5+
* Pimcore
6+
*
7+
* This source file is available under two different licenses:
8+
* - GNU General Public License version 3 (GPLv3)
9+
* - Pimcore Commercial License (PCL)
10+
* Full copyright and license information is available in
11+
* LICENSE.md which is distributed with this source code.
12+
*
13+
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
14+
* @license http://www.pimcore.org/license GPLv3 and PCL
15+
*/
16+
17+
namespace Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset;
18+
19+
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
20+
21+
interface AssetSearchInterface extends SearchInterface
22+
{
23+
}

src/Model/Search/Document/DocumentSearch.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818

1919
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\BaseSearch;
2020

21-
final class DocumentSearch extends BaseSearch
21+
final class DocumentSearch extends BaseSearch implements DocumentSearchInterface
2222
{
2323
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
/**
5+
* Pimcore
6+
*
7+
* This source file is available under two different licenses:
8+
* - GNU General Public License version 3 (GPLv3)
9+
* - Pimcore Commercial License (PCL)
10+
* Full copyright and license information is available in
11+
* LICENSE.md which is distributed with this source code.
12+
*
13+
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
14+
* @license http://www.pimcore.org/license GPLv3 and PCL
15+
*/
16+
17+
namespace Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document;
18+
19+
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
20+
21+
interface DocumentSearchInterface extends SearchInterface
22+
{
23+
}

src/Model/Search/Element/ElementSearch.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818

1919
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\BaseSearch;
2020

21-
final class ElementSearch extends BaseSearch
21+
final class ElementSearch extends BaseSearch implements ElementSearchInterface
2222
{
2323
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
/**
5+
* Pimcore
6+
*
7+
* This source file is available under two different licenses:
8+
* - GNU General Public License version 3 (GPLv3)
9+
* - Pimcore Commercial License (PCL)
10+
* Full copyright and license information is available in
11+
* LICENSE.md which is distributed with this source code.
12+
*
13+
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
14+
* @license http://www.pimcore.org/license GPLv3 and PCL
15+
*/
16+
17+
namespace Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Element;
18+
19+
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
20+
21+
interface ElementSearchInterface extends SearchInterface
22+
{
23+
}

src/Service/Search/SearchService/Asset/AssetSearchService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
use Exception;
2020
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\UserPermissionTypes;
2121
use Pimcore\Bundle\GenericDataIndexBundle\Exception\AssetSearchException;
22+
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\AssetSearchInterface;
2223
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResult;
2324
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResultItem;
24-
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
2525
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Modifier\Filter\Basic\IdFilter;
2626
use Pimcore\Bundle\GenericDataIndexBundle\Permission\Workspace\AssetWorkspace;
2727
use Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\Pagination\PaginationInfoServiceInterface;
@@ -47,7 +47,7 @@ public function __construct(
4747
/**
4848
* @throws AssetSearchException
4949
*/
50-
public function search(SearchInterface $assetSearch): AssetSearchResult
50+
public function search(AssetSearchInterface $assetSearch): AssetSearchResult
5151
{
5252
$assetSearch = $this->searchHelper->addSearchRestrictions(
5353
search: $assetSearch,

src/Service/Search/SearchService/Asset/AssetSearchServiceInterface.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,18 @@
1717
namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Asset;
1818

1919
use Pimcore\Bundle\GenericDataIndexBundle\Exception\AssetSearchException;
20+
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\AssetSearchInterface;
2021
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResult;
2122
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResultItem;
22-
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
23+
2324
use Pimcore\Model\User;
2425

2526
interface AssetSearchServiceInterface
2627
{
2728
/**
2829
* @throws AssetSearchException
2930
*/
30-
public function search(SearchInterface $assetSearch): AssetSearchResult;
31+
public function search(AssetSearchInterface $assetSearch): AssetSearchResult;
3132

3233
/**
3334
* @throws AssetSearchException

src/Service/Search/SearchService/Document/DocumentSearchService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
use Exception;
2020
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\UserPermissionTypes;
2121
use Pimcore\Bundle\GenericDataIndexBundle\Exception\DocumentSearchException;
22+
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document\DocumentSearchInterface;
2223
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document\SearchResult\DocumentSearchResult;
2324
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document\SearchResult\DocumentSearchResultItem;
24-
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
2525
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Modifier\Filter\Basic\IdFilter;
2626
use Pimcore\Bundle\GenericDataIndexBundle\Permission\Workspace\DocumentWorkspace;
2727
use Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\Pagination\PaginationInfoServiceInterface;
@@ -47,7 +47,7 @@ public function __construct(
4747
/**
4848
* @throws DocumentSearchException
4949
*/
50-
public function search(SearchInterface $documentSearch): DocumentSearchResult
50+
public function search(DocumentSearchInterface $documentSearch): DocumentSearchResult
5151
{
5252
$documentSearch = $this->searchHelper->addSearchRestrictions(
5353
search: $documentSearch,

0 commit comments

Comments
 (0)