Added besimple.soap.cache service
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the BeSimpleSoapBundle.
|
||||
*
|
||||
* (c) Christian Kerl <christian-kerl@web.de>
|
||||
* (c) Francis Besset <francis.besset@gmail.com>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
@ -10,6 +12,8 @@
|
||||
|
||||
namespace BeSimple\SoapBundle\DependencyInjection;
|
||||
|
||||
use BeSimple\SoapCommon\Cache;
|
||||
|
||||
use Symfony\Component\Config\Definition\Processor;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
@ -22,6 +26,7 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
* BeSimpleSoapExtension.
|
||||
*
|
||||
* @author Christian Kerl <christian-kerl@web.de>
|
||||
* @author Francis Besset <francis.besset@gmail.com>
|
||||
*/
|
||||
class BeSimpleSoapExtension extends Extension
|
||||
{
|
||||
@ -44,6 +49,8 @@ class BeSimpleSoapExtension extends Extension
|
||||
|
||||
$config = $processor->process($configuration->getConfigTree(), $configs);
|
||||
|
||||
$this->registerCacheConfiguration($config['cache'], $container, $loader);
|
||||
|
||||
if (isset($config['clients'])) {
|
||||
$this->registerClientConfiguration($config['clients'], $container, $loader);
|
||||
}
|
||||
@ -56,6 +63,33 @@ class BeSimpleSoapExtension extends Extension
|
||||
}
|
||||
}
|
||||
|
||||
private function registerCacheConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
|
||||
{
|
||||
$loader->load('soap.xml');
|
||||
|
||||
switch ($config['type']) {
|
||||
case 'none':
|
||||
$config['type'] = Cache::TYPE_NONE;
|
||||
break;
|
||||
|
||||
case 'disk':
|
||||
$config['type'] = Cache::TYPE_DISK;
|
||||
break;
|
||||
|
||||
case 'memory':
|
||||
$config['type'] = Cache::TYPE_MEMORY;
|
||||
break;
|
||||
|
||||
case 'disk_memory':
|
||||
$config['type'] = Cache::TYPE_DISK_MEMORY;
|
||||
break;
|
||||
}
|
||||
|
||||
foreach (array('type', 'lifetime', 'limit') as $key) {
|
||||
$container->setParameter('besimple.soap.cache.'.$key, $config[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
private function registerClientConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
|
||||
{
|
||||
$loader->load('client.xml');
|
||||
|
@ -1,8 +1,10 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the BeSimpleSoapBundle.
|
||||
*
|
||||
* (c) Christian Kerl <christian-kerl@web.de>
|
||||
* (c) Francis Besset <francis.besset@gmail.com>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
@ -17,6 +19,7 @@ use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
* WebServiceExtension configuration structure.
|
||||
*
|
||||
* @author Christian Kerl <christian-kerl@web.de>
|
||||
* @author Francis Besset <francis.besset@gmail.com>
|
||||
*/
|
||||
class Configuration
|
||||
{
|
||||
@ -30,6 +33,7 @@ class Configuration
|
||||
$treeBuilder = new TreeBuilder();
|
||||
$rootNode = $treeBuilder->root('be_simple_soap');
|
||||
|
||||
$this->addCacheSection($rootNode);
|
||||
$this->addClientSection($rootNode);
|
||||
$this->addServicesSection($rootNode);
|
||||
$this->addWsdlDumperSection($rootNode);
|
||||
@ -37,6 +41,27 @@ class Configuration
|
||||
return $treeBuilder->buildTree();
|
||||
}
|
||||
|
||||
private function addCacheSection(ArrayNodeDefinition $rootNode)
|
||||
{
|
||||
$rootNode
|
||||
->children()
|
||||
->arrayNode('cache')
|
||||
->children()
|
||||
->scalarNode('type')
|
||||
->defaultValue('disk')
|
||||
->validate()
|
||||
->ifNotInArray(array('none', 'disk', 'memory', 'disk_memory'))
|
||||
->thenInvalid('The cache type has to be either "none", "disk", "memory" or "disk_memory"')
|
||||
->end()
|
||||
->end()
|
||||
->scalarNode('lifetime')->defaultNull()->end()
|
||||
->scalarNode('limit')->defaultNull()->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
;
|
||||
}
|
||||
|
||||
private function addClientSection(ArrayNodeDefinition $rootNode)
|
||||
{
|
||||
$rootNode
|
||||
|
Reference in New Issue
Block a user