Skip to content

Commit

Permalink
Merge pull request #5 from TomHAnderson/feature/config-provider
Browse files Browse the repository at this point in the history
Moved config into a ConfigProvider
  • Loading branch information
TomHAnderson committed Jun 20, 2018
2 parents 3690553 + a64c02e commit 73d030b
Show file tree
Hide file tree
Showing 5 changed files with 144 additions and 105 deletions.
102 changes: 0 additions & 102 deletions config/module.config.php

This file was deleted.

1 change: 0 additions & 1 deletion phpcs.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
<rule ref="Generic.Formatting.SpaceAfterNot"/>
<rule ref="Generic.Formatting.NoSpaceAfterCast"/>
<rule ref="Generic.NamingConventions.ConstructorName"/>
<rule ref="Generic.NamingConventions.CamelCapsFunctionName"/>
<rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
<rule ref="Generic.PHP.DisallowShortOpenTag"/>
<rule ref="Generic.PHP.DisallowAlternativePHPTags"/>
Expand Down
129 changes: 129 additions & 0 deletions src/ConfigProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
<?php

namespace ZF\Doctrine\GraphQL;

use DateTime;
use Zend\ServiceManager\Factory\InvokableFactory;

class ConfigProvider
{
/**
* @codeCoverageIgnore
*/
public function __invoke()
{
return [
'dependencies' => $this->getDependencyConfig(),
'hydrators' => $this->getHydratorConfig(),
'controllers' => $this->getControllerConfig(),
'console' => [
'router' => $this->getConsoleRouterConfig(),
],
'zf-doctrine-graphql-type' => $this->getDoctrineGraphQLTypeConfig(),
'zf-doctrine-graphql-filter' => $this->getDoctrineGraphQLFilterConfig(),
'zf-doctrine-graphql-criteria' => $this->getDoctrineGraphQLCriteriaConfig(),
'zf-doctrine-graphql-resolve' => $this->getDoctrineGraphQLResolveConfig(),
];
}

public function getDependencyConfig()
{
return [
'factories' => [
Hydrator\Filter\FilterDefault::class => InvokableFactory::class,
Hydrator\Filter\Password::class => InvokableFactory::class,
Hydrator\Strategy\ToBoolean::class => InvokableFactory::class,
Hydrator\Strategy\ToFloat::class => InvokableFactory::class,
Hydrator\Strategy\ToInteger::class => InvokableFactory::class,
Hydrator\Strategy\NullifyOwningAssociation::class => InvokableFactory::class,
Hydrator\Strategy\AssociationDefault::class => InvokableFactory::class,
Hydrator\Strategy\FieldDefault::class => InvokableFactory::class,

Criteria\FilterManager::class => Criteria\FilterManagerFactory::class,
Field\FieldResolver::class => Field\FieldResolverFactory::class,
Filter\Loader::class => Filter\LoaderFactory::class,
Filter\FilterManager::class => Filter\FilterManagerFactory::class,
Resolve\ResolveManager::class => Resolve\ResolveManagerFactory::class,
Resolve\Loader::class => Resolve\LoaderFactory::class,
Type\Loader::class => Type\LoaderFactory::class,
Type\TypeManager::class => Type\TypeManagerFactory::class,
],
];
}

public function getHydratorConfig()
{
return [
'abstract_factories' => [
Hydrator\DoctrineHydratorFactory::class,
],
];
}

public function getDoctrineGraphQLTypeConfig()
{
return [
'invokables' => [
DateTime::class => Type\DateTimeType::class,
],
'abstract_factories' => [
Type\EntityTypeAbstractFactory::class,
],
];
}

public function getDoctrineGraphQLFilterConfig()
{
return [
'abstract_factories' => [
Filter\FilterTypeAbstractFactory::class,
],
];
}

public function getDoctrineGraphQLCriteriaConfig()
{
return [
'abstract_factories' => [
Criteria\FilterTypeAbstractFactory::class,
],
];
}

public function getDoctrineGraphQLResolveConfig()
{
return [
'abstract_factories' => [
Resolve\EntityResolveAbstractFactory::class,
],
];
}

public function getControllerConfig()
{
return [
'factories' => [
Console\ConfigurationSkeletonController::class
=> Console\ConfigurationSkeletonControllerFactory::class,
],
];
}

public function getConsoleRouterConfig()
{
return [
'routes' => [
'graphql-skeleton' => [
'type' => 'simple',
'options' => [
'route' => 'graphql:config-skeleton [--hydrator-sections=] [--object-manager=]',
'defaults' => [
'controller' => Console\ConfigurationSkeletonController::class,
'action' => 'index'
],
],
],
],
];
}
}
2 changes: 1 addition & 1 deletion src/Criteria/FilterTypeAbstractFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ public function __invoke(ContainerInterface $container, $requestedName, array $o
];
}

if ($filterManager->has('isnull') && $filterManager->has('isnotnull')) {
if ($filterManager->has('eq') && $filterManager->has('neq')) {
$fields[$fieldName . '_isnull'] = [
'name' => $fieldName . '_isnull',
'type' => Type::boolean(),
Expand Down
15 changes: 14 additions & 1 deletion src/Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,20 @@ class Module implements
{
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
$configProvider = new ConfigProvider();

return [
'service_manager' => $configProvider->getDependencyConfig(),
'hydrators' => $configProvider->getHydratorConfig(),
'controllers' => $configProvider->getControllerConfig(),
'console' => [
'router' => $configProvider->getConsoleRouterConfig(),
],
'zf-doctrine-graphql-type' => $configProvider->getDoctrineGraphQLTypeConfig(),
'zf-doctrine-graphql-filter' => $configProvider->getDoctrineGraphQLFilterConfig(),
'zf-doctrine-graphql-criteria' => $configProvider->getDoctrineGraphQLCriteriaConfig(),
'zf-doctrine-graphql-resolve' => $configProvider->getDoctrineGraphQLResolveConfig(),
];
}

/**
Expand Down

0 comments on commit 73d030b

Please sign in to comment.