janschumann / dic
将Symfony的依赖注入容器与drupal集成。
1.1.0
2015-04-16 12:54 UTC
Requires
- php: >=5.4
- janschumann/classloader_composer: ~1.0.0
- symfony/config: ~2.4
- symfony/dependency-injection: ~2.4
- symfony/filesystem: ~2.4
- symfony/http-kernel: ~2.4
Requires (Dev)
- phpunit/phpunit: ~4.4
This package is not auto-updated.
Last update: 2024-09-28 16:31:07 UTC
README
概览
将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")); }