diff --git a/CHANGELOG.md b/CHANGELOG.md index 77aef016..d2f9606a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Changelog ========= +1.3.2 +----- + +* Added curl-options to configuration + 1.3.1 ----- diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 328d47eb..8b5085f9 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -166,6 +166,10 @@ private function getPHPCRSessionsNode() ->useAttributeAsKey('key') ->prototype('scalar')->end() ->end() + ->arrayNode('curl_options') + ->useAttributeAsKey('key') + ->prototype('scalar')->end() + ->end() // jackrabbit ->scalarNode('url')->end() diff --git a/DependencyInjection/DoctrinePHPCRExtension.php b/DependencyInjection/DoctrinePHPCRExtension.php index 00187bbc..9c0be79b 100644 --- a/DependencyInjection/DoctrinePHPCRExtension.php +++ b/DependencyInjection/DoctrinePHPCRExtension.php @@ -20,19 +20,19 @@ namespace Doctrine\Bundle\PHPCRBundle\DependencyInjection; +use Doctrine\ODM\PHPCR\Version; +use Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; +use Symfony\Component\Config\Definition\Processor; +use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\DefinitionDecorator; -use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\Config\FileLocator; -use Symfony\Component\Config\Definition\Processor; -use Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension; -use Doctrine\ODM\PHPCR\Version; +use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\DependencyInjection\Reference; /** * PHPCR Extension. @@ -210,6 +210,18 @@ private function loadJackalopeSession(array $session, ContainerBuilder $containe // pipe additional parameters unchanged to jackalope $backendParameters += $session['backend']['parameters']; + if (array_key_exists('curl_options', $session['backend']) && count($session['backend']['curl_options'])) { + $curlOptions = array(); + foreach ($session['backend']['curl_options'] as $option => $value) { + if (!is_int($option)) { + $option = constant($option); + } + + $curlOptions[$option] = $value; + } + $backendParameters['jackalope.jackrabbit_curl_options'] = $curlOptions; + } + // only set this default here when we know we are jackalope if (!isset($backendParameters['jackalope.check_login_on_server'])) { $backendParameters['jackalope.check_login_on_server'] = false; diff --git a/Tests/Unit/DependencyInjection/ConfigurationTest.php b/Tests/Unit/DependencyInjection/ConfigurationTest.php index f2c3490f..073be596 100644 --- a/Tests/Unit/DependencyInjection/ConfigurationTest.php +++ b/Tests/Unit/DependencyInjection/ConfigurationTest.php @@ -61,6 +61,7 @@ public function configurations() 'jackalope.default_header' => 'X-ID: %serverid%', 'jackalope.jackrabbit_expect' => true, ), + 'curl_options' => array(), 'url' => 'http://localhost:8080/server/', 'backtrace' => false, ), @@ -137,6 +138,7 @@ public function configurations() 'factory' => null, 'parameters' => array( ), + 'curl_options' => array(), 'url' => 'http://a', 'backtrace' => false, ), @@ -155,6 +157,7 @@ public function configurations() 'profiling' => false, 'parameters' => array( ), + 'curl_options' => array(), 'url' => 'http://b', 'backtrace' => false, 'factory' => null, @@ -238,6 +241,7 @@ public function configurations() 'jackalope.disable_stream_wrapper' => true, 'jackalope.disable_transactions' => true, ), + 'curl_options' => array(), ), 'workspace' => 'default', 'username' => 'admin',