korstiaan / drimple
模块,用于将 Pimple 依赖注入容器添加到 Drupal 7.x。
Requires
- php: >=5.3.3
- composer/installers: *
- pimple/pimple: 1.0.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 13:48:53 UTC
README
模块,用于将 Pimple 依赖注入容器添加到 Drupal。
需求
- Drupal 7.x
- PHP 5.3.3+
- Pimple
安装
推荐使用 Composer 安装 Drimpel。只需将以下内容添加到您的 composer.json
{ "minimum-stability": "dev", "require": { ... "korstiaan/drimple": "dev-master" } }
现在更新 Composer 并安装新添加的需求及其依赖项(包括 Pimple
)
$ php composer.phar update korstiaan/drimple
如果一切顺利且 composer/installers
完成了其工作,Drimple
将被安装到 modules/drimple
。如果您不希望它在那里,或者它不是 Drupal 根目录的一部分,将其符号链接到您选择的文件夹。
接下来,转到 site/all/modules
,然后在 http://yourdomain.com/admin/modules/list
上启用它。
(如果您使用 voiture,只需将 drimple
添加到 cnf/shared/modules.php
)
使用 Composer
使用 Composer
意味着包括其自动加载器。将以下内容添加到 Drupals 的 settings.php
// /path/to/sites/default/settings.php require '/path/to/vendor/autoload.php';
用法
Drimple
的容器及其服务可以通过 drimple()
或 \Drimple\Drimple::getInstance()
作为单例检索。
添加服务
添加服务的推荐方式是实现 hook_drimple_provide(\Drimple\Drimple $drimple)
<?php // sites/all/modules/foo/foo.module function foo_drimple_provide(\Drimple\Drimple $drimple) { $drimple['database'] = $drimple->share(function($c) { $options = $c['database.options'] + array( 'user' => null, 'password' => null, ); if (!isset($options['dsn'])) { throw new \Exception('Please provide dsn'); } return new \PDO($options['dsn'],$options['user'],$options['password']); }); $drimple['database.options'] = array( 'dsn' => 'mysql:dbname=drupal;host=localhost', 'user' => 'root', 'password' => 'root', ); }
服务提供者
就像 Silex 一样,您也可以通过注册 Service Providers
将服务添加到 Drimple
。
示例
<?php // sites/all/modules/foo/foo.module function foo_drimple_provide(\Drimple\Drimple $drimple) { $drimple->register(new \Foo\Provider\DBProvider(), array( 'database.options' => array( 'dsn' => 'mysql:dbname=drupal;host=localhost', 'user' => 'root', 'password' => 'root', ), )); } // sites/all/modules/foo/Foo/Provider/DBProvider.php namespace Foo\Provider; use Drimple\Drimple, Drimple\Provider\ServiceProviderInterface; class DBProvider implements ServiceProviderInterface { public function register(Drimple $drimple) { $drimple['database'] = $drimple->share(function($c) { $options = $c['database.options'] + array( 'user' => null, 'password' => null, ); if (!isset($options['dsn'])) { throw new \Exception('Please provide dsn'); } return new \PDO($options['dsn'],$options['user'],$options['password']); }); } }
提供者
查看 wiki
许可证
Drimple 在 MIT 许可下授权。