Page MenuHomePhabricator

A not quite right idea

Authored By
yelirekim
Feb 16 2016, 1:38 AM
Size
1 KB
Referenced Files
None
Subscribers
None

A not quite right idea

<?php
/**
* Exposes a very basic API for reacting to application transactions. Subclasses can override
* @{method:getProcessableTransactionTemplates} or @{method:canProcessTransaction} dending on
* how finely they would like to filter transactions for processing.
*/
abstract class CITransactionProcessor extends Phobject {
abstract public function getProcessableTransactionClasses();
public function canProcessTransaction(PhabricatorApplicationTransaction $transaction) {
return in_array(get_class($transaction), $this->getProcessableTransactionClasses());
}
abstract protected function processTransaction(PhabricatorApplicationTransaction $transaction);
public function processTransactions(array $transactions) {
$results = [];
foreach ($transactions as $transaction) {
$results[$transaction->getPHID()] = $this->processTransaction($transaction);
}
return $results;
}
public function isEnabled() {
return true;
}
final public static function getAllProcessors() {
$processors = (new PhutilClassMapQuery())
->setAncestorClass(__CLASS__)
->setFilterMethod('isEnabled')
->execute();
return $processors;
}
}

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
53139
Default Alt Text
A not quite right idea (1 KB)

Event Timeline