Changeset 20152 for lang/php

Show
Ignore:
Timestamp:
09/28/08 19:29:10 (2 months ago)
Author:
nowelium
Message:
 
Location:
lang/php/misc/Hermit/src/Hermit
Files:
5 added
5 modified

Legend:

Unmodified
Added
Removed
  • lang/php/misc/Hermit/src/Hermit/Hermit.php

    r19836 r20152  
    55 */ 
    66class Hermit { 
     7    protected $proxy; 
    78    protected $listeners = array(); 
    89    protected $delegators = array(); 
     
    1516          $class = HermitDaoManager::get($class); 
    1617        } 
    17         $this->proxy = self::__create($class); 
     18        $proxy = self::__create($class); 
     19        $this->proxy = self::wrap($proxy, $class); 
    1820    } 
    1921    public function __call($name, $parameters = array()){ 
     
    4547        return HermitClassProxy::delegate($reflector); 
    4648    } 
     49    protected static function wrap(HermitProxy $proxy, $targetClass){ 
     50        if(HermitTransactionManager::has($targetClass)){ 
     51            return HermitTransactionManager::createProxy($proxy, $targetClass); 
     52        } 
     53        return $proxy; 
     54    } 
    4755} 
    4856 
  • lang/php/misc/Hermit/src/Hermit/HermitListener.php

    r19775 r20152  
    55 */ 
    66abstract class HermitListener extends Hermit { 
    7     public static function listen(Hermit $hermit, $methodName, HermitResponder $responder){ 
     7    public static function listen(Hermit $hermit, $methodName, HermitRespondProxy $responder){ 
    88        if(!isset($hermit->listeners[$methodName])){ 
    99            $hermit->listeners[$methodName] = array(); 
     
    1111        $hermit->listeners[$methodName][] = $responder; 
    1212    } 
    13     public static function delegate(Hermit $hermit, $methodName, HermitDelegator $delgator){ 
     13    public static function delegate(Hermit $hermit, $methodName, HermitDelegateProxy $delgator){ 
    1414        $hermit->delegators[$methodName] = $delegator; 
    1515    } 
  • lang/php/misc/Hermit/src/Hermit/HermitTransactionManager.php

    r19775 r20152  
    1010    } 
    1111    public static function set($targetClass, HermitTx $tx){ 
    12         self::$transactionScripts[$targetClass] = $tx; 
    1312    } 
    1413    public static function get($targetClass){ 
    15         return self::$transactionScripts[$targetClass]; 
    1614    } 
    1715    public static function has($targetClass){ 
    18         return isset(self::$transactionScripts[$targetClass]); 
     16    } 
     17    public static function createProxy(HermitProxy $proxy, $targetClass){ 
     18        $tx = self::get($targetClass); 
     19        return new HermitCallableProxy($proxy, array($tx, 'proceed')); 
    1920    } 
    2021} 
  • lang/php/misc/Hermit/src/Hermit/tx/AbstractHermitTx.php

    r19344 r20152  
    66abstract class AbstractHermitTx implements HermitTx { 
    77    private $txRule = array(); 
    8     public function complete(Exception $e){ 
     8    private $connection; 
     9    public function hasTransaction(){ 
     10    } 
     11    public function begin(){ 
     12    } 
     13    public function commit(){ 
     14    } 
     15    public function rollback(){ 
     16    } 
     17    public function suspend(){ 
     18    } 
     19    public function resume(PDO $connection){ 
     20    } 
     21    public final function complete(Exception $e){ 
    922        foreach($this->txRule as $rule){ 
    1023            try { 
     
    1932        return false; 
    2033    } 
    21     public function addCommitRule(Exception $e){ 
     34    public final function addCommitRule(Exception $e){ 
    2235        $this->txRule[] = new HermitTxRule($this, $e, true); 
    2336    } 
    24     public function addRollbackRurle(Exception $e){ 
     37    public final function addRollbackRurle(Exception $e){ 
    2538        $this->txRule[] = new HermitTxRule($this, $e, false); 
    2639    } 
  • lang/php/misc/Hermit/src/Hermit/tx/HermitTx.php

    r19344 r20152  
    55 */ 
    66interface HermitTx { 
     7    public function hasTransaction(); 
     8    public function begin(); 
     9    public function commit(); 
     10    public function rollback(); 
     11    public function suspend(); 
     12    public function resume(PDO $connection); 
     13    public function proceed(HermitProxy $proxy, $name, array $parameters); 
     14    public function complete(Exception $e); 
     15    public function addCommitRule(Exception $e); 
     16    public function addRollbackRurle(Exception $e); 
     17    public static function create(); 
    718}