sciactive / requirephp
PHP 中依赖注入(类似 RequireJS)的实现。
1.3.0
2015-02-19 00:00 UTC
README
PHP 中依赖注入和服务定位器(类似 RequireJS)的实现。
安装
您可以使用 Composer 或 Bower 安装 RequirePHP。
composer require sciactive/requirephp bower install https://github.com/sciactive/requirephp.git
入门
如果您不使用自动加载器,您只需要包含 RequirePHP.php 文件。
require("RequirePHP.php");
现在您可以从需要模块(或多个模块)运行的代码开始。这些代码将不会运行,直到所有必需的模块(在本例中,只有 'test')都可用。
\SciActive\RequirePHP::_(array('test'), function($test){ $test->value = '<p>Hello, world.</p>'; });
您可以定义模块。此模块没有依赖关系,因此数组为空。
\SciActive\RequirePHP::_('test', array(), function(){ class test { public $value; public function talk() { echo $this->value; } } // Returning a new instantiation is important if you are // providing a service. return new test(); });
您可以创建模块(和其他别名)的别名。
\SciActive\RequirePHP::alias('testing', 'test');
您可以在其他代码中使用相同的实例,使用 RequirePHP 作为服务定位器。此函数使用上面的别名。
\SciActive\RequirePHP::_(array('testing'), function($test){ $test->talk(); // Prints '<p>Hello, world.</p>'. });
您还可以在闭包之外检索模块。但是,如果在此请求模块时该模块不可用,RequirePHP 将抛出 RequireModuleFailedException。这就是不使用闭包的代价。
$test = \SciActive\RequirePHP::_('test'); $test->talk(); // Prints '<p>Hello, world.</p>'.
服务定位
该存储库包含使用 RequirePHP 作为服务定位器的一个示例。
依赖注入
该存储库包含使用 RequirePHP 作为依赖注入器的一个示例。
联系开发者
有几种方式可以联系 RequirePHP 的开发者,以提出您的问题、担忧、评论、错误报告或功能请求。
- RequirePHP 是 Twitter 上的 SciActive 的一部分。
- 错误报告、问题和功能请求可以在问题页面提交。
- 您可以直接电子邮件 Hunter Perrin,他是 RequirePHP 的创建者。