KnpMarkdownBundle/DependencyInjection/KnplabsMarkdownExtension.php

104 lines
2.9 KiB
PHP
Raw Normal View History

<?php
namespace Knplabs\Bundle\MarkdownBundle\DependencyInjection;
2011-03-12 18:49:07 +01:00
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class KnplabsMarkdownExtension extends Extension
{
2011-02-25 15:43:59 +01:00
/**
* Handles the knplabs_markdown configuration.
*
* @param array $configs The configurations being loaded
* @param ContainerBuilder $container
*/
public function load(array $configs , ContainerBuilder $container)
{
$config = array();
foreach($configs as $c) {
$config = array_merge($config, $c);
}
2011-02-25 15:43:59 +01:00
if(array_key_exists('parser', $config)) {
$this->parserLoad($config, $container);
}
2011-02-25 15:43:59 +01:00
if(array_key_exists('helper', $config)) {
$this->helperLoad($config, $container);
}
2011-02-25 15:43:59 +01:00
if(array_key_exists('twig', $config)) {
$this->twigLoad($config, $container);
}
}
2011-02-25 15:43:59 +01:00
/**
* Handles the parser configuration.
*
* @param array $config The configurations being loaded
* @param ContainerBuilder $container
*/
public function parserLoad($config, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('parser.xml');
if(isset($config['parser']['class'])) {
$container->setParameter('markdown.parser.class', $config['parser']['class']);
}
}
2011-02-25 15:43:59 +01:00
/**
* Handles the helper configuration.
*
* @param array $config The configurations being loaded
* @param ContainerBuilder $container
*/
public function helperLoad($config, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('helper.xml');
}
2011-02-25 15:43:59 +01:00
/**
* Handles the twig configuration.
*
* @param array $config The configurations being loaded
* @param ContainerBuilder $container
*/
public function twigLoad($config, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('twig.xml');
}
/**
* Returns the base path for the XSD files.
*
* @return string The XSD base path
*/
public function getXsdValidationBasePath()
{
return null;
}
2011-02-25 15:43:59 +01:00
/**
* @see Symfony\Component\DependencyInjection\Extension\ExtensionInterface
*/
public function getNamespace()
{
2011-02-25 15:43:59 +01:00
return 'http://www.symfony-project.org/schema/dic/markdown';
}
2011-02-25 15:43:59 +01:00
/**
* @see Symfony\Component\DependencyInjection\Extension\ExtensionInterface
*/
public function getAlias()
{
return 'knplabs_markdown';
}
}