knplabs/minibus

Minibus 是工作流总线的一个简单实现。

0.0.1-beta 2014-11-24 21:12 UTC

This package is not auto-updated.

Last update: 2024-09-10 15:23:08 UTC


README

minibus

嘿,欢迎旅行者!你正在寻找一种轻松地通过你的软件旅行的方法?不要再搜索了,你已经找到了这个地方!

女士们,先生们,让我向您介绍著名的、惊人的、革命性的 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" :)

更进一步

这是其他一些文档,详细解释了一切