knplabs / minibus
Minibus 是工作流总线的一个简单实现。
0.0.1-beta
2014-11-24 21:12 UTC
Requires
- php: >=5.4
- symfony/config: ~2.4
- symfony/event-dispatcher: ~2.4
- symfony/options-resolver: ~2.4
Requires (Dev)
- bossa/phpspec2-expect: *
- docteurklein/funk-spec: dev-master
- jms/serializer: ~0.17@dev
- phpspec/nyan-formatters: *
- phpspec/phpspec: *
- symfony/http-foundation: ~2.4
- symfony/routing: ~2.4
- twig/twig: ~1.16@dev
Suggests
- jms/serializer: For the serializer terminus
- symfony/http-foundation: For using http terminus
- symfony/routing: For using route redirection terminus
- twig/twig: For the twig terminus
This package is not auto-updated.
Last update: 2024-09-10 15:23:08 UTC
README
嘿,欢迎旅行者!你正在寻找一种轻松地通过你的软件旅行的方法?不要再搜索了,你已经找到了这个地方!
女士们,先生们,让我向您介绍著名的、惊人的、革命性的 PHP Minibus!
目标
如果你像我一样,你可能正在编写软件解决方案。在许多软件架构中,故事从 入口点(例如:MVC 应用程序中的控制器)开始。但如果你思考一下这个 入口点,你可能同意我的看法,它不仅仅是一个 点,在许多情况下,它是许多 组件 的组合,它们相互交互!
为了避免我所说的 SMFB 架构(理解:超级大脑,即 控制器),我向您介绍 Minibus!
原理很简单。为了处理应用程序的 入口点,我们需要三个 组件
- 一个
Minibus
,它包含各种乘客(理解为数据)。 - 一些
站点
,可以在某个时刻处理迷你巴士(代替控制器)。 - 一条巴士
线路
,包含站点
并可以引导Minibus
。 - 可选的
终点站
,可以处理如何显示乘客。
太棒了!让我们摇滚吧!
一个基本的例子可能如下所示
use Knp\Minibus\Station; use Knp\Minibus\Minibus; class CrazyStation implements Station { public function handle(Minibus $minibus, array $configuration = []) { // You can add passenger $minibus->addPassenger('Sheldon', ['name' => 'Cooper', 'from' => 'The Big Bang Theory']); // Ensure a passenger existence if (!$minibus->hasPassenger('Sheldon')) { throw new \Exception('Wow something is going wrong :/'); } // Retrieve a passenger $from = $minibus->getPassenger('Sheldon')['from']; // Or add as many passengers you want $minibus->setPassengers([ 'George' => 'Abitbol', ]); } }
一旦你有了一些站点,你需要创建一个 Minibus
和一个 线路
// test.php use Knp\Minibus\Minibus\Minibus; use Knp\Minibus\Line\Line; $minibus = new Minibus; $line = new Line; // add the station in the line $line->addStation(new CrazyStation); // finally lead te minibus thrue all the registered stations $line->lead($minibus); // return the minibus echo $minibus->getPassenger('George'); // print "Abitbol" :)
更进一步
这是其他一些文档,详细解释了一切