рд╢реБрдн рджреЛрдкрд╣рд░ рд╕рд╛рдерд┐рдпреЛрдВ, рдЖрдЬ рдореИрдВ ZF 1 рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рдкрд░реА рдХрдерд╛ рдмрддрд╛рдКрдВрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╣реБрдЖ рд╣реИ)ред
рдЕрдЪреНрдЫреА рдУрдУрдкреА рдкреБрд╕реНрддрдХреЛрдВ рдореЗрдВ, рдЕрдХреНрд╕рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рджреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд┐рд╕реА рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдкрд╕рдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╢реБрд╖реНрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХреИрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ (рдФрд░ рдЬрдм рдпрд╣ рдЕрдВрдд рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ? тАЭ), рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:
31 рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХреНрд╢рди, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЗрдВ indexAction (), addAction (), editAction (), searchAction () рддрд░реАрдХреЗ рд╣реИрдВред
рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ 1: рд╕рдмрд╕реЗ, рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВред рдмрд╛рдХреА рдореЗрдВ, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ,
рд╕рдорд╕реНрдпрд╛ # 2: EditAction () рдФрд░ addAction () рд╡рд┐рдзрд┐рдпрд╛рдБ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣реИрдВ, рдФрд░ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП
рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ, рдореЙрдбрд▓ рдХреА рдлреЙрд░реНрдо рдФрд░ рдмрдЪрдд рдХреА рд╢реБрд░реВрдЖрдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛, рдореИрдВ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛
Class Common_Controller extends Zend_Controller_Action { protected $modelClass = ''; protected $editFormClass = ''; protected $jsModelFile = ''; protected function modelFactory( $id = null ) { $modelClass = $this->modelClass; if ( $id ) { $model = $modelClass::find( $id ); } else { $model = $modelClass::create(); } return $model; } protected function formFactory( Model_Record $model ) { $formClass = $this->editFormClass; $form = new $formClass(); $form->setDefaults( $model->toArray(1) ); return $form; } protected function save( Model_Record $model , Zend_Form $form ) { $model->fromArray($form->getValues(), false); $model->save(); } protected function _editActionHelper() { $id = $this->_request->getParam('id'); if ( !$id ) { throw new Zend_Controller_Action_Exception(' ' , 404); }
рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ рдореЙрдбрд▓рдлреИрдХреНрдЯрд┐рдВрдЧ () рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдЬреБрдбрд╝реЗ рдореЙрдбрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдЧ рдЪрд░ $ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ-> рдореЙрдбрд▓рдХреНрд▓рд╛рд╕ рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрдиреБрдХреВрд▓рди рдпрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдореЙрдбрд▓ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдмрд╕ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ formFactory () рдПрдХ рд╕рдВрдкрд╛рджрди рдлрд╝реЙрд░реНрдо рдмрдирд╛рддрд╛ рд╣реИ, рдЕрдиреБрдХреВрд▓рди рдореЙрдбрд▓рдлреИрдХреНрдЯреНрд░реА () рдХреЗ рд╕рдорд╛рди рд╣реИред
рд╕рдВрд░рдХреНрд╖рд┐рдд () рд╕рд╣реЗрдЬреЗрдВ () рд╡рд┐рдзрд┐ рдкреНрд░рд╕реНрддреБрдд рдлреЙрд░реНрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдореЙрдбрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддреА рд╣реИ, рдпрд╣рд╛рдВ рдкреИрдВрддрд░реЗрдмрд╛рдЬрд╝реА рдХреЗ рд▓рд┐рдП рднреА рдЬрдЧрд╣ рд╣реИ, рдЕрдЧрд░ рдЗрдХрд╛рдИ рдХреЛ рдмрдЪрд╛рдиреЗ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдлреИрд▓рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╣ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд╣реЗрдЬреЗрдВ () рдХреЗрд╡рд▓ рдореЙрдбрд▓ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреЛрдИ sql рдХреНрд╡реЗрд░реА рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо addTag (), setChannles (), рдЖрджрд┐ рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА saveFromArray () рд╡рд┐рдзрд┐ рдХреЗ рдмрдЬрд╛рдпред
рдЗрд╕ рд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде, рдореЙрдбрд▓ рдФрд░ рд░реВрдк рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯрд░ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ _editActionHelper () рд╣реИ, рдпрджрд┐ рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдореЗрдВ рд╣рдореЗрдВ рдЗрдХрд╛рдИ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
public function editAction() { $this->_editActionHelper(); }
рдЗрд╕реА рддрд░рд╣ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдПред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпреБрддреНрдкрдиреНрди рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:
Class Video extends Common_Controller { protected $modelClass = 'Video'; protected $editFormClass = 'Form_Video'; protected function save( Model_Record $model , Zend_Form $form ) { parent::save( $model , $form ); $model->setChannels( $form->channels->getValue() ); } public function editAction() { $this->_editActionHelper(); } public function addAction() { $this->_addActionHelper(); } public function indexAction() { $this->_indexActionHelper(); } }
рдкреАрдПрд╕ рдХреГрдкрдпрд╛, рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдпрд╣ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред