__construct() public method

public __construct ( array $config = [] )
$config array
コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function __construct(array $config = [])
 {
     parent::__construct($config);
     $this->addExtension(new CommonMarkCoreExtension());
     $this->mergeConfig(['renderer' => ['block_separator' => "\n", 'inner_separator' => "\n", 'soft_break' => "\n"]]);
     $filter = $this->config->getConfig('filter');
     // Iterate over each hook defined extension and add it to the environment.
     foreach (commonmark_get_extensions($filter) as $extension) {
         try {
             $class = new \ReflectionClass($extension['class']);
             $args = $extension['class arguments'];
             if ($extension['class arguments callback'] && is_callable($extension['class arguments callback'])) {
                 $args = call_user_func_array($extension['class arguments callback'], [$extension, $this]);
             }
             // Instantiate the extension.
             $extension_instance = $class->newInstanceArgs($args);
             // If this is a Drupal\CommonMark\Extension, load in the settings.
             if (in_array('Drupal\\CommonMark\\ExtensionInterface', class_implements($extension['class']))) {
                 // Set the extension's default settings.
                 $extension_instance->setSettings($extension['default settings']);
                 // Set the extension's current settings.
                 $extension_instance->setSettings($extension['settings']);
             }
             // Replace the placeholder for the extension instance in the method
             // arguments with the real class instance.
             $method_args = $extension['method arguments'];
             $index = array_search(self::EXTENSION_INSTANCE_PLACEHOLDER, $method_args, TRUE);
             if ($index !== FALSE) {
                 $method_args[$index] = $extension_instance;
             } else {
                 $method_args[] = $extension_instance;
             }
             // Actually add the extension to the environment.
             call_user_func_array([$this, $extension['method']], $method_args);
         } catch (\Exception $e) {
             watchdog('commonmark', $e->getMessage());
         }
     }
 }