рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рдлрд╛рджрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ, рдФрд░ 1 рдХреЗ 1 рдореЗрдВ рдирд╛рд╕рдордЭ рдирдХрд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред
рд╕рд┐рдореНрдлрдиреА 2 рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рджрд┐рдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ URL рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ред рдорд╛рд░реНрдЧреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPdoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
class Controller { function testAction ( $a, $b = 'something' ) { echo 'a: '.$a.', b: '.$b; } }
рдпрджрд┐, рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдк 1 рдХреЛ 1 рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рдЪреЗрдд рд░рд╣реЗрдВ:
- рдкреНрд░рддрд┐рдмрд┐рдВрдм рдПрдкреАрдЖрдИ рдзреАрдорд╛ рд╣реИ
- рдореЛрдЯрд╛рдкреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛
- рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЧреИрд░-рд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рд╡реИрдЪрд╛рд░рд┐рдХ рд╡рд┐рдХреГрддрд┐
- рдПрдХ рдЯреАрдо рдореЗрдВ рдпрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерди / рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рдХрдард┐рдирд╛рдЗрдпреЛрдВред
рддреЛ, рдХрд╛рд░реНрдп: рдпрджрд┐ рдЪрд░ "a" рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдЪрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдпрджрд┐ рдЪрд░ "b" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдЪрд░ PHPDoc рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рддреНрдпрд╛рдкрди рд╕рдорд╛рд░реЛрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рдХрд▓рд╛:
function CheckURLValid ( $class, $method, $values_arr = array() ) { $class = new ReflectionClass( $class ); $method = $class->getMethod( $method ); $param = $method->getParameters(); $doc = $method->getDocComment();
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг: try { $arr = CheckURLValid( 'Controller', 'testAction', $_GET ); call_user_func_array( array('Controller', 'testAction'), $arr ); } catch ( Exception $e ) { echo $e->getMessage(); }
рдЖрдк рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:/test.php
/test.php?a=abc
/test.php?a=12
/test.php?a=12&b=another
/test.php?a=12&c=13
рдЖрдк
рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред