[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * Factory for token generation. 5 * 6 * @note Doing some benchmarking indicates that the new operator is much 7 * slower than the clone operator (even discounting the cost of the 8 * constructor). This class is for that optimization. 9 * Other then that, there's not much point as we don't 10 * maintain parallel HTMLPurifier_Token hierarchies (the main reason why 11 * you'd want to use an abstract factory). 12 * @todo Port DirectLex to use this 13 */ 14 class HTMLPurifier_TokenFactory 15 { 16 17 /** 18 * Prototypes that will be cloned. 19 * @private 20 */ 21 // p stands for prototype 22 private $p_start, $p_end, $p_empty, $p_text, $p_comment; 23 24 /** 25 * Generates blank prototypes for cloning. 26 */ 27 public function __construct() { 28 $this->p_start = new HTMLPurifier_Token_Start('', array()); 29 $this->p_end = new HTMLPurifier_Token_End(''); 30 $this->p_empty = new HTMLPurifier_Token_Empty('', array()); 31 $this->p_text = new HTMLPurifier_Token_Text(''); 32 $this->p_comment= new HTMLPurifier_Token_Comment(''); 33 } 34 35 /** 36 * Creates a HTMLPurifier_Token_Start. 37 * @param $name Tag name 38 * @param $attr Associative array of attributes 39 * @return Generated HTMLPurifier_Token_Start 40 */ 41 public function createStart($name, $attr = array()) { 42 $p = clone $this->p_start; 43 $p->__construct($name, $attr); 44 return $p; 45 } 46 47 /** 48 * Creates a HTMLPurifier_Token_End. 49 * @param $name Tag name 50 * @return Generated HTMLPurifier_Token_End 51 */ 52 public function createEnd($name) { 53 $p = clone $this->p_end; 54 $p->__construct($name); 55 return $p; 56 } 57 58 /** 59 * Creates a HTMLPurifier_Token_Empty. 60 * @param $name Tag name 61 * @param $attr Associative array of attributes 62 * @return Generated HTMLPurifier_Token_Empty 63 */ 64 public function createEmpty($name, $attr = array()) { 65 $p = clone $this->p_empty; 66 $p->__construct($name, $attr); 67 return $p; 68 } 69 70 /** 71 * Creates a HTMLPurifier_Token_Text. 72 * @param $data Data of text token 73 * @return Generated HTMLPurifier_Token_Text 74 */ 75 public function createText($data) { 76 $p = clone $this->p_text; 77 $p->__construct($data); 78 return $p; 79 } 80 81 /** 82 * Creates a HTMLPurifier_Token_Comment. 83 * @param $data Data of comment token 84 * @return Generated HTMLPurifier_Token_Comment 85 */ 86 public function createComment($data) { 87 $p = clone $this->p_comment; 88 $p->__construct($data); 89 return $p; 90 } 91 92 } 93 94 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |