puli / discovery
在Puli包中发布和发现工件。
1.0.0-beta9
2016-01-14 10:18 UTC
Requires
- php: ^5.3.9|^7.0
- ramsey/uuid: ^2.8
- webmozart/assert: ^1.0
- webmozart/expression: ^1.0
Requires (Dev)
- phpunit/phpunit: ^4.6
- puli/repository: ^1.0-beta9
- sebastian/version: ^1.0.1
- webmozart/json: ^1.2
- webmozart/key-value-store: ^1.0-beta7
Suggests
- puli/repository: to bind and discover Puli resources
- webmozart/json: to use the JSON discovery
- webmozart/key-value-store: to use the key-value store discovery
This package is auto-updated.
Last update: 2024-09-07 23:36:50 UTC
README
最新版本: 1.0.0-beta9
PHP >= 5.3.9
Puli 发现组件支持将Puli资源绑定到绑定类型。绑定类型可以使用EditableDiscovery
接口的addBindingType()
方法定义
use Puli\Discovery\Api\Type\BindingType; use Puli\Discovery\Binding\Initializer\ResourceBindingInitializer; use Puli\Discovery\InMemoryDiscovery; $discovery = new InMemoryDiscovery(array( // $repo is a Puli\Repository\Api\ResourceRepository instance new ResourceBindingInitializer($repo), )); $discovery->addBindingType(new BindingType('doctrine/xml-mapping'));
资源绑定
然后,可以通过将ResourceBinding
传递给addBinding()
将存储库中的资源绑定到定义的类型
use Puli\Discovery\Binding\ResourceBinding; $discovery->addBinding(new ResourceBinding('/app/config/doctrine/*.xml', 'doctrine/xml-mapping'));
使用findBindings()
,您可以稍后检索类型的所有绑定
foreach ($discovery->findBindings('doctrine/xml-mapping') as $binding) { foreach ($binding->getResources() as $resource) { // do something... } }
当前支持以下Discovery
实现
阅读Puli文档中的资源发现指南以了解更多关于资源发现的信息。
类绑定
您还可以将类绑定到绑定类型。按照惯例,所有绑定类的公共接口用作绑定类型
$discovery->addBindingType(new BindingType(Plugin::class));
可以通过添加ClassBinding
实例来绑定类
use Puli\Discovery\Binding\ClassBinding; $discovery->addBinding(new ClassBinding(MyPlugin::class, Plugin::class));
像以前一样,使用findBindings()
查找绑定类型的所有绑定
foreach ($discovery->findBindings(Plugin::class) as $binding) { $pluginClass = $binding->getClassName(); $plugin = new $pluginClass(); // do something... }
作者
安装
遵循安装指南在项目中安装Puli。
文档
阅读Puli 文档以了解有关Puli的更多信息。
贡献
Puli总是欢迎贡献!
支持
如果您遇到问题,请发送电子邮件至[email protected]或通过Twitter向@webmozart提问。
许可证
本软件包的所有内容均受MIT许可证的许可。