Advertisement
Guest User

Block Closure en php

a guest
Dec 2nd, 2013
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.09 KB | None | 0 0
  1. <?php
  2.  
  3. /** IBOT SOCKET PHP5
  4.  *  @designer: Alexander171294
  5.  *  @Proyect Name: PHPIBot 2
  6.  *  @contact: Alexander171294@gmail.com
  7.  *  @Status: Prototype
  8.  *  @Date: 02/12/13
  9.  *  @info: proyecto desarrollado por el equipo UnderC0de++
  10.  */
  11.  
  12. /*
  13.  * Este es un mecanismo inter-componente, es medio complejo de explicar pero
  14.  * más o menos es así
  15.  * cuando se instancia el componente, y se quiere proveer al componente de la posibilidad
  16.  * de poder hablar con el código que lo ejecuta, tanto como el código le puede hablar a él
  17.  * (osea que si el componente por x motivo decea mandar un mensaje al código porque ocurrió un evento)
  18.  * pueda hacerlo.
  19.  * Como? se instancia un block closure para ese componente, y se le da por parametros
  20.  * la instancia del componente, y la instancia del código que ejecuta el componente.
  21.  * Luego se entrega al componente la instancia del block closure
  22.  * y se guarda en el código original la instancia del block closure.
  23.  *
  24.  * cuando el código original quiera ejecutar algo del componente, llamará al blockclosure que tiene guardado
  25.  * le exigirá la instancia del componente y ejecutará lo que tenga que hacer
  26.  *
  27.  * si ocurre algún evento en el componente, el mismo, tomará la instancia de block closure y ejecutará eventHandler
  28.  * que esta función usará la instancia de la clase original que instanció el componente, y llamará a la función predeterminada
  29.  *
  30.  */
  31.  
  32. Interface iBlockClosure
  33. {
  34.    
  35.     public function __construct($kid, $callback, $func_callback);
  36.    
  37.     public function eventHandler($params);
  38.    
  39.     public function getComponent();
  40.    
  41. }
  42.  
  43. class BlockClosure implements iBlockClosure
  44. {
  45.    
  46.     private $component_kid = null;
  47.     private $callback = null;
  48.     private $func = null;
  49.    
  50.     public function __construct($kid, $callback, $func_callback)
  51.     {
  52.         $this->component_kid = $kid;
  53.         $this->callback = $callback;
  54.         $this->func = $func_callback;
  55.     }
  56.    
  57.     public function eventHandler($params)
  58.     {
  59.         $func = (string)$this->func;
  60.         return $this->callback->$func($params);
  61.     }
  62.    
  63.     public function getComponent()
  64.     {
  65.         return $this->component_kid;
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement