weavephp/weave

Weave glue-framework 核心库

维护者

详细信息

github.com/weavephp/weave

源代码

问题

安装数量: 15,303

依赖关系: 11

建议者: 0

安全: 0

星标: 4

关注者: 4

分支: 0

公开问题: 0

类型:框架

2.1.0 2023-07-14 11:24 UTC

This package is auto-updated.

Last update: 2024-09-14 13:45:40 UTC


README

想象一下,你7岁的时候,和几个朋友放学后一起玩。你有一个装满了各种玩偶和道具的大箱子,无限的想象力。你想扮演超级英雄?这里有相应的道具。电影明星?还是狂野西部?或者奥克和精灵的奇幻世界?所有的东西都在这个玩偶箱里。所有的上衣、裤子、裙子、鞋子、帽子、泡沫剑、塑料激光枪和闪亮的护身符,你想要的,都能让你的创作栩栩如生。

在PHP的世界里,Packagist里面装满了代码中的泡沫剑和帽子——有无数种组合。但如果你试图组装一组知名的包,例如微框架中间件栈,仍然需要大量的工作来将这些部分粘合在一起。所以,为了节省别人的精力,有一些成套的派对服装包,你可以直接从货架上拿走。所有你需要的东西来实现太空海盗的外观。

但如果你想成为一个拿着泡沫剑和大帽子、而不是别人决定你想要、带着塑料激光枪和透明塑料太空头盔的太空海盗呢?不幸的是,在代码中,这往往不像和你的好朋友交换剑那么简单。

当涉及到PHP框架时,如果能够自由地从服装箱中挑选你想要的部件,但不需要手动将它们全部连接起来,那就太好了。

欢迎来到Weave。

微框架的解剖学

无论你查看哪个微框架,它们都有相同的基本组件(多多少少)

  • 配置
  • 错误处理器
  • 依赖注入控制器
  • 中间件栈
  • 路由器
  • 解析/分发

在这种情况下,你预计会编写你的秘密酷炫的额外组件作为中间件组件、控制器等,并按照你想要的方式挂载到框架中。在这种情况下,你没有多少选择权来决定你将使用上述哪些组件。一些微框架试图做一些选择,例如Zend Expressive,但选择有限。

但看看Packagist,你会找到大量的不同的DIC、中间件栈、路由器等,并且有很多创新。

这就是Weave与它们不同的地方。Weave并没有捆绑大多数列出的组件。相反,你可以选择适配器——或者编写你自己的。无论哪种最适合你。

自己选择

Weave为其需要的不同组件提供了适配器。你提供每个适配器中的一个(或你自己的代码)来创建你想要的微框架。

在接口被使用的情况下,你只需将它们映射到你的DIC中的具体类。

查看http://github.com/weavephp 上的示例,了解这是如何实际工作的。