mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-20 14:43:49 +00:00
DX: fix typing in SearchProvider
This commit is contained in:
@@ -1,44 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* Chill is a software for social workers
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Chill\MainBundle\Form;
|
||||
|
||||
use Chill\MainBundle\Search\SearchProvider;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class AdvancedSearchType extends AbstractType
|
||||
{
|
||||
/**
|
||||
* @var SearchProvider
|
||||
*/
|
||||
protected $searchProvider;
|
||||
|
||||
public function __construct(SearchProvider $searchProvider)
|
||||
{
|
||||
$this->searchProvider = $searchProvider;
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$this->searchProvider
|
||||
->getHasAdvancedFormByName($options['search_service'])
|
||||
->createSearchForm($builder);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver
|
||||
->setRequired('search_service')
|
||||
->setAllowedTypes('search_service', ['string']);
|
||||
}
|
||||
}
|
@@ -20,4 +20,6 @@ interface HasAdvancedSearchFormInterface extends SearchInterface
|
||||
public function convertFormDataToQuery(array $data);
|
||||
|
||||
public function convertTermsToFormData(array $terms);
|
||||
|
||||
public function getAdvancedSearchTitle(): string;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ use function count;
|
||||
class SearchProvider
|
||||
{
|
||||
/**
|
||||
* @var HasAdvancedSearchForm[]
|
||||
* @var HasAdvancedSearchFormInterface[]
|
||||
*/
|
||||
private $hasAdvancedFormSearchServices = [];
|
||||
|
||||
@@ -101,13 +101,9 @@ class SearchProvider
|
||||
* return searchservice with an advanced form, defined in service
|
||||
* definition.
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @throws UnknowSearchNameException
|
||||
*
|
||||
* @return HasAdvancedSearchForm
|
||||
*/
|
||||
public function getHasAdvancedFormByName($name)
|
||||
public function getHasAdvancedFormByName(string $name): HasAdvancedSearchFormInterface
|
||||
{
|
||||
if (array_key_exists($name, $this->hasAdvancedFormSearchServices)) {
|
||||
return $this->hasAdvancedFormSearchServices[$name];
|
||||
@@ -119,7 +115,7 @@ class SearchProvider
|
||||
public function getHasAdvancedFormSearchServices()
|
||||
{
|
||||
//sort the array
|
||||
uasort($this->hasAdvancedFormSearchServices, static function (SearchInterface $a, SearchInterface $b) {
|
||||
uasort($this->hasAdvancedFormSearchServices, static function (HasAdvancedSearchFormInterface $a, HasAdvancedSearchFormInterface $b): int {
|
||||
return $a->getOrder() <=> $b->getOrder();
|
||||
});
|
||||
|
||||
|
@@ -173,7 +173,7 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getAdvancedSearchTitle()
|
||||
public function getAdvancedSearchTitle(): string
|
||||
{
|
||||
return 'Search within persons';
|
||||
}
|
||||
|
Reference in New Issue
Block a user