Skip to content

Commit

Permalink
Plugin managers are proper plugin managers
Browse files Browse the repository at this point in the history
  • Loading branch information
TomHAnderson committed Mar 2, 2020
1 parent 83da09f commit 4b500a4
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 44 deletions.
3 changes: 1 addition & 2 deletions src/FilterManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
namespace Laminas\ApiTools\Doctrine\ORM\QueryBuilder;

use Doctrine\ORM\QueryBuilder;
use Laminas\ApiTools\Doctrine\ORM\QueryBuilder\Filter\AbstractFilter;
use Laminas\ServiceManager\AbstractPluginManager;
use Laminas\ServiceManager\Exception;
use RuntimeException;
Expand All @@ -19,7 +18,7 @@ class FilterManager extends AbstractPluginManager
/**
* @var string
*/
protected $instanceOf = AbstractFilter::class;
protected $instanceOf = Filter\AbstractFilter::class;

public function filter(QueryBuilder $queryBuilder, $metadata, $filters)
{
Expand Down
20 changes: 11 additions & 9 deletions src/FilterManagerFactory.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
<?php

/**
* @see https://github.com/laminas-api-tools/api-tools-doctrine-querybuilder for the canonical source repository
* @copyright https://github.com/laminas-api-tools/api-tools-doctrine-querybuilder/blob/master/COPYRIGHT.md
* @license https://github.com/laminas-api-tools/api-tools-doctrine-querybuilder/blob/master/LICENSE.md New BSD License
*/

namespace Laminas\ApiTools\Doctrine\ORM\QueryBuilder;

use Laminas\Mvc\Service\AbstractPluginManagerFactory;
use Interop\Container\ContainerInterface;

class FilterManagerFactory extends AbstractPluginManagerFactory
final class FilterManagerFactory
{
const PLUGIN_MANAGER_CLASS = FilterManager::class;
public function __invoke(
ContainerInterface $container,
$requestedName,
array $options = null
) {
$config = $container->get('config')['api-tools-doctrine-orm-querybuilder-filter'];

return new FilterManager($container, $config);
}
}
29 changes: 5 additions & 24 deletions src/Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,19 @@
namespace Laminas\ApiTools\Doctrine\ORM\QueryBuilder;

use Laminas\ModuleManager\Feature\DependencyIndicatorInterface;
use Laminas\ModuleManager\Listener\ServiceListener;
use Laminas\ModuleManager\ModuleManager;
use Laminas\ModuleManager\Feature\ConfigProviderInterface;

class Module implements DependencyIndicatorInterface
class Module implements
ConfigProviderInterface,
DependencyIndicatorInterface
{
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}

public function init(ModuleManager $moduleManager)
{
$serviceManager = $moduleManager->getEvent()->getParam('ServiceManager');
$serviceListener = $serviceManager->get('ServiceListener');

$serviceListener->addServiceManager(
FilterManager::class,
'api-tools-doctrine-orm-querybuilder-filter',
Filter\AbstractFilter::class,
'getDoctrineOrmQueryBuilderFilterConfig'
);

$serviceListener->addServiceManager(
OrderByManager::class,
'api-tools-doctrine-orm-querybuilder-orderby',
OrderBy\AbstractOrderBy::class,
'getDoctrineQueryBuilderOrmOrderByConfig'
);
}

/**
* Expected to return an array of modules on which the current one depends on
* Return an array of modules on which this depends on
*
* @return string[]
*/
Expand Down
20 changes: 11 additions & 9 deletions src/OrderbyManagerFactory.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
<?php

/**
* @see https://github.com/laminas-api-tools/api-tools-doctrine-querybuilder for the canonical source repository
* @copyright https://github.com/laminas-api-tools/api-tools-doctrine-querybuilder/blob/master/COPYRIGHT.md
* @license https://github.com/laminas-api-tools/api-tools-doctrine-querybuilder/blob/master/LICENSE.md New BSD License
*/

namespace Laminas\ApiTools\Doctrine\ORM\QueryBuilder;

use Laminas\Mvc\Service\AbstractPluginManagerFactory;
use Interop\Container\ContainerInterface;

class OrderByManagerFactory extends AbstractPluginManagerFactory
final class OrderByManagerFactory
{
const PLUGIN_MANAGER_CLASS = OrderByManager::class;
public function __invoke(
ContainerInterface $container,
$requestedName,
array $options = null
) {
$config = $container->get('config')['api-tools-doctrine-orm-querybuilder-orderby'];

return new OrderByManager($container, $config);
}
}

0 comments on commit 4b500a4

Please sign in to comment.