Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved config into a ConfigProvider #5

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Moved config into a ConfigProvider
  • Loading branch information
TomHAnderson committed Jun 20, 2018
commit db7bb3401808073e374b0446f49c4642faaf6508
102 changes: 0 additions & 102 deletions config/module.config.php

This file was deleted.

144 changes: 144 additions & 0 deletions src/ConfigProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
<?php

namespace ZF\Doctrine\GraphQL;

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

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

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\Loader::class => Criteria\LoaderFactory::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 getDoctrineCriteriaFilterConfig()
{
return [
'aliases' => [
'between' => Filter\Criteria\Type\Between::class,
'isnull' => Filter\Criteria\Type\IsNull::class,
'isnotnull' => Filter\Criteria\Type\IsNotNull::class,
],
'factories' => [
Filter\Criteria\Type\Between::class => InvokableFactory::class,
Filter\Criteria\Type\IsNull::class => InvokableFactory::class,
Filter\Criteria\Type\IsNotNull::class => InvokableFactory::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'
],
],
],
],
];
}
}
16 changes: 15 additions & 1 deletion src/Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,21 @@ class Module implements
{
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
$configProvider = new ConfigProvider();

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

/**
Expand Down