33 * Callback class implementing ParamStructures, pattern similar to Currying.
44 *
55 * @link http://code.google.com/p/phpquery/wiki/Callbacks#Param_Structures
6- * @author Tobiasz Cudnik
6+ * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
77 */
88class Callback
99 implements ICallbackNamed {
1010 public $ callback = null ;
1111 public $ params = null ;
12+ protected $ name ;
1213 public function __construct ($ callback , $ param1 = null , $ param2 = null , $ param3 = null ) {
1314 $ params = func_get_args ();
1415 $ params = array_slice ($ params , 1 );
@@ -29,12 +30,17 @@ public function setName($name) {
2930 $ this ->name = $ name ;
3031 return $ this ;
3132 }
32- // TODO test me !!!
33+ // TODO test me
3334// public function addParams() {
3435// $params = func_get_args();
3536// return new Callback($this->callback, $this->params+$params);
3637// }
3738}
39+ /**
40+ * Callback type which on execution returns reference passed during creation.
41+ *
42+ * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
43+ */
3844class CallbackReturnReference extends Callback
3945 implements ICallbackNamed {
4046 protected $ reference ;
@@ -52,6 +58,11 @@ public function hasName() {
5258 return isset ($ this ->name ) && $ this ->name ;
5359 }
5460}
61+ /**
62+ * Callback type which on execution returns value passed during creation.
63+ *
64+ * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
65+ */
5566class CallbackReturnValue extends Callback
5667 implements ICallbackNamed {
5768 protected $ value ;
@@ -80,22 +91,18 @@ function getName();
8091}
8192/**
8293 * CallbackParameterToReference can be used when we don't really want a callback,
83- * only parameter passed to it. CallbackReference takes first parameter's value
84- * and passes it to reference. Thanks to that, we can use *if statement* instead
85- * of *callback function*.
94+ * only parameter passed to it. CallbackParameterToReference takes first
95+ * parameter's value and passes it to reference.
8696 *
8797 * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
88- *
8998 */
9099class CallbackParameterToReference extends Callback {
91100 /**
92- *
93101 * @param $reference
94- * @param $paramIndex
95102 * @TODO implement $paramIndex;
96103 * param index choose which callback param will be passed to reference
97104 */
98- public function __construct (&$ reference, $ paramIndex = null ){
105+ public function __construct (&$ reference ){
99106 $ this ->callback =& $ reference ;
100107 }
101108}
0 commit comments