Yii рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдЖрд░рд╛рдорджрд╛рдпреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдкрд░рд┐рдЪрдп

рдЬрд┐рд╕ рдХрдВрдкрдиреА рдореЗрдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдЙрд╕рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ Google рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЙрдкрд░ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд╡рдпрдВ рдСрдЯреЛ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдиреЗ рдореБрдЭреЗ рдирд╛рд░рд╛рдЬ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ json рдЪрд╛рд╣рддрд╛ рдерд╛ред рд░реЗрд╕реНрдЯрдлреБрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдиреЗ рдореЗрд░реА рдирдЬрд╝рд░ рдХреЛ рдкрдХрдбрд╝рд╛ рдФрд░ рд░реЗрд╕реНрдЯрдлреБрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХрд┐рд╕реА рднреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рджреЗрд╢реА php рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд░реНрдЧ рд▓рд┐рдЦрд╛ рдерд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдлреЗрдирд┐рд▓реНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рд░реБрдХ рдирд╣реАрдВ рд╕рдХрддрд╛ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ, yii рдХреЗ рдкреНрд░рд╢рдВрд╕рдХ, рдиреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдШрдЯрдирд╛рдХреНрд░рдореЛрдВ рдХреЛ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╛рдо рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЬреЛ рд╡рд░реНрдЧ рд▓рд┐рдЦрд╛ рдерд╛, рд╡рд╣ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕реЗ рд╕реМрдВрдкреЗ рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛ред Yii рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рд╡рд░реНрдЧ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рд╛рдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдХреИрд╕реЗ рдкрд╕рдВрдж рдЖрдпрд╛ред рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рдкреАрдбрд╝рд╛ рд╣реБрдИ, рдореИрдВ рдЗрд╕реЗ рдФрд░ рднреА рдЖрд╕рд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдЗрддрдирд╛

Yii рдореЗрдВ рдРрд╕рд╛ рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рд╣реИ " рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдПрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ " рдЬреИрд╕рд╛ рдХрд┐ рдореИрдиреБрдЕрд▓ рдХрд╣рддрд╛ рд╣реИ - рдЖрдк рдирд╛рдорд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ $ _GET рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

class UpdateAction extends CAction { public function run($id) { // $id     $_GET['id'] } } 


рдпрд╣рд╛рдВ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдиреЗ рди рдХреЗрд╡рд▓ рдЬреАрдИрдЯреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдЖрд░рд╛рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ POST, PUT, DELETE рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдирддреАрдЬрддрди, рдореБрдЭреЗ рдЕрдкрдиреЗ рд░рдирдПрд╢рди рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде CController рдХреНрд▓рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рд▓рд╛рдкрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛ред
GetActionParams GET рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдпрд╣ рдХреБрд░реВрдкрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИред
 /** * Returns the request parameters that will be used for action parameter binding. * By default, this method will return $_GET. You may override this method if you * want to use other request parameters (eg $_GET+$_POST). * @return array the request parameters to be used for action parameter binding * @since 1.1.7 */ public function getActionParams() { return $_GET; } 

рдЕрдкрдиреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХреНрд▓рд╛рд╕ рдУрд░реЗрд╕реНрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ред
(рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 1.1.9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ $ _POST рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рдореИрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖ, рдореБрдЭреЗ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕рдм рдХреБрдЫ рд▓реЗрдирд╛ рдкрдбрд╝рд╛)
 // POST  public function getActionParamsPOST() { //  $fh = fopen("php://input", 'r'); $post_string=stream_get_contents($fh); $post_param = explode("&", $post_string); $array_put=array(); foreach($post_param as $post_val) { $param = explode("=", $post_val); $array_post[$param[0]]=urldecode($param[1]); } return $array_post; } // DELETE  public function getActionParamsDELETE() { //  $fh = fopen("php://input", 'r'); $delete_string=stream_get_contents($fh); $delete_param = explode("&", $delete_string); $array_delete=array(); foreach($delete_param as $delete_val) { $param = explode("=", $delete_val); $array_delete[$param[0]]=urldecode($param[1]); } if($_GET) $_delete=$_GET; else $_delete=$array_delete; return $_delete; } // PUT  public function getActionParamsPUT() { //   PUT $fh = fopen("php://input", 'r'); $put_string=stream_get_contents($fh); $put_param = explode("&", $put_string); $array_put=array(); foreach($put_param as $put_val) { $param = explode("=", $put_val); $array_put[$param[0]]=urldecode($param[1]); } return $array_put; } 


рдФрд░ рдореВрд▓ рд╡рд┐рдзрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдирд╛
 /** * Runs the action after passing through all filters. * This method is invoked by {@link runActionWithFilters} after all possible filters have been executed * and the action starts to run. * @param CAction $action action to run * *  runAction   PUT,DELETE,POST */ public function runAction($action) { $priorAction=$this->_action; $this->_action=$action; $params=false; if($this->beforeAction($action)) { switch ($_SERVER['REQUEST_METHOD']) { case "POST": $params= $this->getActionParamsPOST(); break; case "PUT": $params= $this->getActionParamsPUT(); break; case "DELETE": $params= $this->getActionParamsDELETE(); break; default: $params= $this->getActionParams(); } if($action->runWithParams($params)===false) $this->invalidActionParams($action); else $this->afterAction($action); } $this->_action=$priorAction; } 


рдЦреИрд░, рдпрд╣ рд╕рдм рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╣реИ, рд╣рдо рдЕрдкрдиреЗ рдирдП рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 class ApiController extends ORestController { public function actions() { return array ( 'test' => 'application.controllers.actionsApi.actionTest', ); } } 


 class actionTest extends CAction { public function run($params='') { switch ($_SERVER['REQUEST_METHOD']) { case "POST": echo "POST ".$params; break; case "PUT": echo "PUT ".$params; break; case "DELETE": echo "DELETE ".$params; break; default: echo "GET ".$params; } } } 

рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдХреА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП URL рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкреБрдирд╢реНрдЪ: рддрд░реАрдХреЗ getActionParamsPOST, getActionParamsPUT, getActionParamsDELETE рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рджреВрд╕рд░реЗ рдХреЛрдб рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In135862/


All Articles