consolidate / ticket
Consolidate 票据系统核心
v1.0.0
2015-09-11 21:18 UTC
Requires
- php: >=5.4
- arcturial/fsm: dev-master
- black/email: ~1.0
- graphp/graphviz: 0.2.*
- illuminate/support: 4.2.*@stable
- symfony/event-dispatcher: ~2.6
- zetacomponents/mail: ~1.8
Requires (Dev)
- phpunit/phpunit: 4.7.*@dev
This package is auto-updated.
Last update: 2024-09-13 09:37:32 UTC
README
Consolidate 事件驱动票据系统
目标
创建一个灵活且易于扩展的事件驱动票据系统,便于与现有数据源和系统集成。
优先级如下
- 易于配置
- 易于扩展
- 易于调试
简单示例
use Consolidate\Ticket\Ticket; use Consolidate\Ticket\Event\TicketEvent; use Consolidate\Ticket\Data\Status; use Symfony\Component\EventDispatcher\EventDispatcher; $dispatcher = new EventDispatcher(); $dispatcher->addListener('ticket-set-status', function (TicketEvent $event) { if ($event->getData() == 'Working On' && $event->getTicket()->getWorker() == 'Mike') { $ticket->addTag('PR Disaster'); $ticket->addComment('This ticket has been touched my Mike. It is possible to salvage it if we act right now!'); } }); $ticket = new Ticket(); $ticket->setEventManager($dispatcher); $ticket->setWorker(new Participant('Mike')); $ticket->setStatus(new Status('Working On')); $ticket->addComment('Told customer to shove it!');
从源导入
$importer = new Importer(new SMTP()); $dispatcher = new EventDispatcher(); $dispatcher->addListener('importer-new-ticket', function (TicketEvent $event) { $ticket->setChannel(new Channel('Sales')); foreach ($ticket->getData(['Consolidate\Ticket\Data\Comment']) as $comment) { $language_detected = $language_detector->detect((string)$comment); $ticket->addTag($language_detected); } });