Advertisement
fruffl

AOP/Injectable Test

Jan 14th, 2013
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 14.09 KB | None | 0 0
  1.  
  2.     $foo = new foz([
  3.         '__filter' => [
  4.             'baz' =>
  5.             [
  6.                 'ARGS' =>
  7.                 [
  8.                     function($params)
  9.                     {
  10.                         $params['data'][] = 'FILTER DATA #1';
  11.                         return $params;
  12.                     },
  13.                     function($params)
  14.                     {
  15.                         $params['data'][] = 'FILTER DATA #2';
  16.                         return $params;
  17.                     },
  18.                 ],
  19.                 'RETURN' =>
  20.                 [
  21.                     function($result)
  22.                     {
  23.                         $result[] = 'FILTER RESULT #1';
  24.                         return $result;
  25.                     },
  26.                     function($result)
  27.                     {
  28.                         $result[] = 'FILTER RESULT #2';
  29.                         return $result;
  30.                     },
  31.                 ],
  32.             ]
  33.         ],
  34.        
  35.         '__signal' => [
  36.             'baz' =>
  37.             [
  38.                 'PRE_EVENT' =>
  39.                 [
  40.                     666 => function($data)
  41.                     {
  42.                         $data[] = 'SIGNAL PRE_EVENT #1';
  43.                         return $data;
  44.                     },
  45.                     777     => function($data)
  46.                     {
  47.                         $data[] = 'SIGNAL PRE_EVENT #2';
  48.                         return $data;
  49.                     }
  50.                 ],
  51.                 'POST_EVENT' =>
  52.                 [
  53.                     666 => function($params)
  54.                     {
  55.                         $params[] = 'SIGNAL POST_EVENT #1';
  56.                         return $params;
  57.                     },
  58.                     777     => function($params)
  59.                     {
  60.                         $params[] = 'SIGNAL POST_EVENT #2';
  61.                         return $params;
  62.                     }
  63.                 ]
  64.             ]
  65.         ],
  66.        
  67.         '__observer' => [
  68.             'baz' =>
  69.             [
  70.                 function($result, $parameters)
  71.                 {
  72.                     $result[] = 'NOTIFY OBSERVER #1';
  73.                 },
  74.                 function($result, $parameters)
  75.                 {
  76.                     $result[] = 'NOTIFY OBSERVER #2';
  77.                 },
  78.             ]
  79.         ],
  80.         '__classes' =>
  81.         [
  82.             'media' => '\ILLI\Net\Media',
  83.             'config' => '\ILLI\Net\Config',
  84.         ],
  85.         '__proto' =>
  86.         [
  87.             'baz' => function($data, $bla)
  88.             {
  89.                 $data[] = '## EXEC PROTO';
  90.                 return $data;
  91.             }
  92.         ]
  93.     ]);
  94.    
  95.     Class Filter
  96.     {
  97.         public static function baz(array $params = [], \ILLI\Core\Filter $chain)
  98.         {
  99.             $params['data'][] = 'INNER EXTERNAL METHODFILTER';
  100.             return $chain->next($params, $chain);
  101.         }
  102.     }
  103.    
  104.     $foo->registerMethodFilter('baz', function(array $params = [], \ILLI\Core\Filter $chain)
  105.     {
  106.         $params['data'][] = 'OUTER METHODFILTER';
  107.         return $chain->next($params, $chain);
  108.     });
  109.    
  110.     $foo->registerMethodFilter('baz', function(array $params = [], \ILLI\Core\Filter $chain)
  111.     {
  112.         $params['data'][] = 'INNER METHODFILTER';
  113.         return $chain->next($params, $chain);
  114.     });
  115.    
  116.     $foo->registerMethodFilter('baz', [new Filter, 'baz']);
  117.     $result = $foo->baz(['Starting test'], 'bla');
  118.    
  119.     var_dump($result);
  120.     var_dump($foo);
  121.  
  122.  
  123.  
  124. /*
  125. array(9) {
  126.   [0]=>
  127.   string(13) "Starting test"
  128.   [1]=>
  129.   string(14) "FILTER DATA #1"
  130.   [2]=>
  131.   string(14) "FILTER DATA #2"
  132.   [3]=>
  133.   string(18) "OUTER METHODFILTER"
  134.   [4]=>
  135.   string(18) "INNER METHODFILTER"
  136.   [5]=>
  137.   string(27) "INNER EXTERNAL METHODFILTER"
  138.   [6]=>
  139.   string(13) "## EXEC PROTO"
  140.   [7]=>
  141.   string(16) "FILTER RESULT #1"
  142.   [8]=>
  143.   string(16) "FILTER RESULT #2"
  144. }
  145. object(root\foz)#6 (15) {
  146.   ["__defaultConfig":protected]=>
  147.   array(0) {
  148.   }
  149.   ["__autoConfig":protected]=>
  150.   array(0) {
  151.   }
  152.   ["__env":protected]=>
  153.   array(0) {
  154.   }
  155.   ["__initConfig":protected]=>
  156.   array(14) {
  157.     ["__run"]=>
  158.     bool(true)
  159.     ["__main"]=>
  160.     string(6) "__main"
  161.     ["__delegate"]=>
  162.     NULL
  163.     ["__adapter"]=>
  164.     array(0) {
  165.     }
  166.     ["__filter"]=>
  167.     array(1) {
  168.       ["baz"]=>
  169.       array(2) {
  170.         ["ARGS"]=>
  171.         array(2) {
  172.           [0]=>
  173.           object(Closure)#7 (1) {
  174.             ["parameter"]=>
  175.             array(1) {
  176.               ["$params"]=>
  177.               string(10) "<required>"
  178.             }
  179.           }
  180.           [1]=>
  181.           object(Closure)#8 (1) {
  182.             ["parameter"]=>
  183.             array(1) {
  184.               ["$params"]=>
  185.               string(10) "<required>"
  186.             }
  187.           }
  188.         }
  189.         ["RETURN"]=>
  190.         array(2) {
  191.           [0]=>
  192.           object(Closure)#9 (1) {
  193.             ["parameter"]=>
  194.             array(1) {
  195.               ["$result"]=>
  196.               string(10) "<required>"
  197.             }
  198.           }
  199.           [1]=>
  200.           object(Closure)#10 (1) {
  201.             ["parameter"]=>
  202.             array(1) {
  203.               ["$result"]=>
  204.               string(10) "<required>"
  205.             }
  206.           }
  207.         }
  208.       }
  209.     }
  210.     ["__proto"]=>
  211.     array(1) {
  212.       ["baz"]=>
  213.       object(Closure)#17 (1) {
  214.         ["parameter"]=>
  215.         array(2) {
  216.           ["$data"]=>
  217.           string(10) "<required>"
  218.           ["$bla"]=>
  219.           string(10) "<required>"
  220.         }
  221.       }
  222.     }
  223.     ["__method"]=>
  224.     array(0) {
  225.     }
  226.     ["__observer"]=>
  227.     array(1) {
  228.       ["baz"]=>
  229.       array(2) {
  230.         [0]=>
  231.         object(Closure)#15 (1) {
  232.           ["parameter"]=>
  233.           array(2) {
  234.             ["$result"]=>
  235.             string(10) "<required>"
  236.             ["$parameters"]=>
  237.             string(10) "<required>"
  238.           }
  239.         }
  240.         [1]=>
  241.         object(Closure)#16 (1) {
  242.           ["parameter"]=>
  243.           array(2) {
  244.             ["$result"]=>
  245.             string(10) "<required>"
  246.             ["$parameters"]=>
  247.             string(10) "<required>"
  248.           }
  249.         }
  250.       }
  251.     }
  252.     ["__signal"]=>
  253.     array(1) {
  254.       ["baz"]=>
  255.       array(2) {
  256.         ["PRE_EVENT"]=>
  257.         array(2) {
  258.           [666]=>
  259.           object(Closure)#11 (1) {
  260.             ["parameter"]=>
  261.             array(1) {
  262.               ["$data"]=>
  263.               string(10) "<required>"
  264.             }
  265.           }
  266.           [777]=>
  267.           object(Closure)#12 (1) {
  268.             ["parameter"]=>
  269.             array(1) {
  270.               ["$data"]=>
  271.               string(10) "<required>"
  272.             }
  273.           }
  274.         }
  275.         ["POST_EVENT"]=>
  276.         array(2) {
  277.           [666]=>
  278.           object(Closure)#13 (1) {
  279.             ["parameter"]=>
  280.             array(1) {
  281.               ["$params"]=>
  282.               string(10) "<required>"
  283.             }
  284.           }
  285.           [777]=>
  286.           object(Closure)#14 (1) {
  287.             ["parameter"]=>
  288.             array(1) {
  289.               ["$params"]=>
  290.               string(10) "<required>"
  291.             }
  292.           }
  293.         }
  294.       }
  295.     }
  296.     ["__class"]=>
  297.     array(0) {
  298.     }
  299.     ["__to"]=>
  300.     array(2) {
  301.       ["string"]=>
  302.       string(8) "toString"
  303.       ["array"]=>
  304.       string(7) "toArray"
  305.     }
  306.     ["__protoprefix"]=>
  307.     string(9) "prototype"
  308.     ["myInitArg1"]=>
  309.     string(13) "my Init Arg 1"
  310.     ["__classes"]=>
  311.     array(2) {
  312.       ["media"]=>
  313.       string(15) "\ILLI\Net\Media"
  314.       ["config"]=>
  315.       string(16) "\ILLI\Net\Config"
  316.     }
  317.   }
  318.   ["__export"]=>
  319.   array(0) {
  320.   }
  321.   ["__Core_Object_tMethodFilter_registry":protected]=>
  322.   array(1) {
  323.     ["baz"]=>
  324.     array(3) {
  325.       [0]=>
  326.       array(2) {
  327.         [0]=>
  328.         *RECURSION*
  329.         [1]=>
  330.         object(Closure)#30 (2) {
  331.           ["this"]=>
  332.           *RECURSION*
  333.           ["parameter"]=>
  334.           array(2) {
  335.             ["$params"]=>
  336.             string(10) "<required>"
  337.             ["$chain"]=>
  338.             string(10) "<required>"
  339.           }
  340.         }
  341.       }
  342.       [1]=>
  343.       array(2) {
  344.         [0]=>
  345.         *RECURSION*
  346.         [1]=>
  347.         object(Closure)#31 (2) {
  348.           ["this"]=>
  349.           *RECURSION*
  350.           ["parameter"]=>
  351.           array(2) {
  352.             ["$params"]=>
  353.             string(10) "<required>"
  354.             ["$chain"]=>
  355.             string(10) "<required>"
  356.           }
  357.         }
  358.       }
  359.       [2]=>
  360.       array(2) {
  361.         [0]=>
  362.         object(root\Filter)#29 (0) {
  363.         }
  364.         [1]=>
  365.         string(3) "baz"
  366.       }
  367.     }
  368.   }
  369.   ["__Core_Object_tAdapter_registry":protected]=>
  370.   array(0) {
  371.   }
  372.   ["__Core_Object_tClass_registry":protected]=>
  373.   array(0) {
  374.   }
  375.   ["__Core_Object_tFilter_registry":protected]=>
  376.   array(1) {
  377.     ["baz"]=>
  378.     array(2) {
  379.       ["ARGS"]=>
  380.       array(2) {
  381.         [0]=>
  382.         array(2) {
  383.           [0]=>
  384.           *RECURSION*
  385.           [1]=>
  386.           object(Closure)#25 (2) {
  387.             ["this"]=>
  388.             *RECURSION*
  389.             ["parameter"]=>
  390.             array(1) {
  391.               ["$params"]=>
  392.               string(10) "<required>"
  393.             }
  394.           }
  395.         }
  396.         [1]=>
  397.         array(2) {
  398.           [0]=>
  399.           *RECURSION*
  400.           [1]=>
  401.           object(Closure)#26 (2) {
  402.             ["this"]=>
  403.             *RECURSION*
  404.             ["parameter"]=>
  405.             array(1) {
  406.               ["$params"]=>
  407.               string(10) "<required>"
  408.             }
  409.           }
  410.         }
  411.       }
  412.       ["RETURN"]=>
  413.       array(2) {
  414.         [0]=>
  415.         array(2) {
  416.           [0]=>
  417.           *RECURSION*
  418.           [1]=>
  419.           object(Closure)#27 (2) {
  420.             ["this"]=>
  421.             *RECURSION*
  422.             ["parameter"]=>
  423.             array(1) {
  424.               ["$result"]=>
  425.               string(10) "<required>"
  426.             }
  427.           }
  428.         }
  429.         [1]=>
  430.         array(2) {
  431.           [0]=>
  432.           *RECURSION*
  433.           [1]=>
  434.           object(Closure)#28 (2) {
  435.             ["this"]=>
  436.             *RECURSION*
  437.             ["parameter"]=>
  438.             array(1) {
  439.               ["$result"]=>
  440.               string(10) "<required>"
  441.             }
  442.           }
  443.         }
  444.       }
  445.     }
  446.   }
  447.   ["__Core_Object_tMethod_registry":protected]=>
  448.   array(0) {
  449.   }
  450.   ["__Core_Object_tObserver_registry":protected]=>
  451.   array(1) {
  452.     ["baz"]=>
  453.     array(2) {
  454.       [0]=>
  455.       array(2) {
  456.         [0]=>
  457.         *RECURSION*
  458.         [1]=>
  459.         object(Closure)#19 (2) {
  460.           ["this"]=>
  461.           *RECURSION*
  462.           ["parameter"]=>
  463.           array(2) {
  464.             ["$result"]=>
  465.             string(10) "<required>"
  466.             ["$parameters"]=>
  467.             string(10) "<required>"
  468.           }
  469.         }
  470.       }
  471.       [1]=>
  472.       array(2) {
  473.         [0]=>
  474.         *RECURSION*
  475.         [1]=>
  476.         object(Closure)#20 (2) {
  477.           ["this"]=>
  478.           *RECURSION*
  479.           ["parameter"]=>
  480.           array(2) {
  481.             ["$result"]=>
  482.             string(10) "<required>"
  483.             ["$parameters"]=>
  484.             string(10) "<required>"
  485.           }
  486.         }
  487.       }
  488.     }
  489.   }
  490.   ["__Core_Object_tSignal_registry":protected]=>
  491.   array(1) {
  492.     ["baz"]=>
  493.     array(2) {
  494.       ["PRE_EVENT"]=>
  495.       array(2) {
  496.         [666]=>
  497.         array(2) {
  498.           [0]=>
  499.           *RECURSION*
  500.           [1]=>
  501.           object(Closure)#21 (2) {
  502.             ["this"]=>
  503.             *RECURSION*
  504.             ["parameter"]=>
  505.             array(1) {
  506.               ["$data"]=>
  507.               string(10) "<required>"
  508.             }
  509.           }
  510.         }
  511.         [777]=>
  512.         array(2) {
  513.           [0]=>
  514.           *RECURSION*
  515.           [1]=>
  516.           object(Closure)#22 (2) {
  517.             ["this"]=>
  518.             *RECURSION*
  519.             ["parameter"]=>
  520.             array(1) {
  521.               ["$data"]=>
  522.               string(10) "<required>"
  523.             }
  524.           }
  525.         }
  526.       }
  527.       ["POST_EVENT"]=>
  528.       array(2) {
  529.         [666]=>
  530.         array(2) {
  531.           [0]=>
  532.           *RECURSION*
  533.           [1]=>
  534.           object(Closure)#23 (2) {
  535.             ["this"]=>
  536.             *RECURSION*
  537.             ["parameter"]=>
  538.             array(1) {
  539.               ["$params"]=>
  540.               string(10) "<required>"
  541.             }
  542.           }
  543.         }
  544.         [777]=>
  545.         array(2) {
  546.           [0]=>
  547.           *RECURSION*
  548.           [1]=>
  549.           object(Closure)#24 (2) {
  550.             ["this"]=>
  551.             *RECURSION*
  552.             ["parameter"]=>
  553.             array(1) {
  554.               ["$params"]=>
  555.               string(10) "<required>"
  556.             }
  557.           }
  558.         }
  559.       }
  560.     }
  561.   }
  562.   ["__Core_Object_tSignal_results":protected]=>
  563.   array(1) {
  564.     ["baz"]=>
  565.     array(2) {
  566.       ["PRE_EVENT"]=>
  567.       array(2) {
  568.         [666]=>
  569.         array(4) {
  570.           [0]=>
  571.           string(13) "Starting test"
  572.           [1]=>
  573.           string(14) "FILTER DATA #1"
  574.           [2]=>
  575.           string(14) "FILTER DATA #2"
  576.           [3]=>
  577.           string(19) "SIGNAL PRE_EVENT #1"
  578.         }
  579.         [777]=>
  580.         array(4) {
  581.           [0]=>
  582.           string(13) "Starting test"
  583.           [1]=>
  584.           string(14) "FILTER DATA #1"
  585.           [2]=>
  586.           string(14) "FILTER DATA #2"
  587.           [3]=>
  588.           string(19) "SIGNAL PRE_EVENT #2"
  589.         }
  590.       }
  591.       ["POST_EVENT"]=>
  592.       array(2) {
  593.         [666]=>
  594.         array(10) {
  595.           [0]=>
  596.           string(13) "Starting test"
  597.           [1]=>
  598.           string(14) "FILTER DATA #1"
  599.           [2]=>
  600.           string(14) "FILTER DATA #2"
  601.           [3]=>
  602.           string(18) "OUTER METHODFILTER"
  603.           [4]=>
  604.           string(18) "INNER METHODFILTER"
  605.           [5]=>
  606.           string(27) "INNER EXTERNAL METHODFILTER"
  607.           [6]=>
  608.           string(13) "## EXEC PROTO"
  609.           [7]=>
  610.           string(16) "FILTER RESULT #1"
  611.           [8]=>
  612.           string(16) "FILTER RESULT #2"
  613.           [9]=>
  614.           string(20) "SIGNAL POST_EVENT #1"
  615.         }
  616.         [777]=>
  617.         array(10) {
  618.           [0]=>
  619.           string(13) "Starting test"
  620.           [1]=>
  621.           string(14) "FILTER DATA #1"
  622.           [2]=>
  623.           string(14) "FILTER DATA #2"
  624.           [3]=>
  625.           string(18) "OUTER METHODFILTER"
  626.           [4]=>
  627.           string(18) "INNER METHODFILTER"
  628.           [5]=>
  629.           string(27) "INNER EXTERNAL METHODFILTER"
  630.           [6]=>
  631.           string(13) "## EXEC PROTO"
  632.           [7]=>
  633.           string(16) "FILTER RESULT #1"
  634.           [8]=>
  635.           string(16) "FILTER RESULT #2"
  636.           [9]=>
  637.           string(20) "SIGNAL POST_EVENT #2"
  638.         }
  639.       }
  640.     }
  641.   }
  642.   ["__Core_Object_tTo_registry":protected]=>
  643.   array(2) {
  644.     ["string"]=>
  645.     array(2) {
  646.       [0]=>
  647.       *RECURSION*
  648.       [1]=>
  649.       string(8) "toString"
  650.     }
  651.     ["array"]=>
  652.     array(2) {
  653.       [0]=>
  654.       *RECURSION*
  655.       [1]=>
  656.       string(7) "toArray"
  657.     }
  658.   }
  659.   ["__Core_Object_tMethodProto_registry":protected]=>
  660.   array(1) {
  661.     ["baz"]=>
  662.     array(2) {
  663.       [0]=>
  664.       *RECURSION*
  665.       [1]=>
  666.       object(Closure)#18 (2) {
  667.         ["this"]=>
  668.         *RECURSION*
  669.         ["parameter"]=>
  670.         array(2) {
  671.           ["$data"]=>
  672.           string(10) "<required>"
  673.           ["$bla"]=>
  674.           string(10) "<required>"
  675.         }
  676.       }
  677.     }
  678.   }
  679. }
  680. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement