跳转到主要内容
zheojian 提交于 21 September 2014

原文链接: Why Plugins?

插件有点像PHP原生接口外加一点扩展:插件系统能够(通过神奇的命名空间)发现每一个接口的实现类,(默认情况下使用注解来)处理元数据并为那些插件类提供工厂。

插件实现相同的接口,却提供截然不同的行为——就像裁剪效果无法代替缩放效果(至少对于最终用户来说——插件系统使用相同的方式处理这两种扩展,这是非常必要的)。另外,如果你的接口期待实现类的行为一致而内部结构不同(就像database cache和memcache之于缩放和裁剪,不具有类似的不同之处),只需要在service.yml文件中定义,而不是使用插件系统。