将Symfony的依赖注入容器与drupal集成。

安装次数: 3,017

依赖者: 1

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 4

公开问题: 1

类型:drupal模块

1.1.0 2015-04-16 12:54 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:31:07 UTC


README

Build Status

概览

将Symfony的依赖注入容器与drupal集成。

安装

此项目可以使用composer进行检出。

{
  "require": {
    "janschumann/dic": "*"
  }
}

配置

通常不需要配置。

默认的dic缓存目录将由DRUPAL_ROOT . '/' . variable_get('file_public_path', '') . '/dic'确定。

可以通过设置dic_root_dir变量来自定义。

通过shell脚本

$ drush vset dic_root_dir <path/to/cache/dir>

通过php

variable_set('dic_root_dir', '<path/to/cache/dir>');

用法

类自动加载通过composer_classloader模块使用。

默认情况下,将加载settings.xml或环境特定的衍生版本(settings_<environment>.xml)。

提供的服务

此模块提供symfony事件调度器作为通过容器可用的服务。

可以通过以下方式检索事件调度器的实例

$dispatcher = drupal_dic()->get('event_dispatcher');

要向事件添加监听器,请将以下内容添加到您的settings.xml文件中。

<service id="my_service" class="%my_service.class%">
  <tag name="drupal.event_listener" event="<my_event_name>" method="<method_on_my_service>" />
</service>

事件通过以下方式调度

drupal_dic()->get('event_dispatcher')->dispatch('<my_event_name>', <the event class>);

注册包

您的模块可以实现hook_dic_bundle_info(),如dic.api.php中所述,以注册它们的包。

示例

/**
 * Implements @see hook_dic_bundle_info()
 */
function <my_module>_dic_bundle_info() {
  return array('bundles' => array("\\MyNamespace\\MyBundle\\Bundle\\MyBundle\\MyBundle"));
}