Yii - рдЕрдиреБрднрд╡ рд╡рд┐рдирд┐рдордп: рдореЙрдбрд▓


рдЗрд╕ рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА YII рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреМрд╢рд▓ рд╣реИред рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рд░реНрдмрд╛рдз рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд▓реЗрдЦ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг YII 1.1.14 рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд╛рда рд╣реИрдВред


рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕ рдЖрдХрд░реНрд╖рдХ рдкрд╛рда рдХреЛ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВред рдореЙрдбрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╡рд╛рд╕

рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХрдИ рдЬрдЯрд┐рд▓ рдирд┐рд░реНрднрд░ рдкреНрд░рд╢реНрдиреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП; рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдПрдХ SQL рдХреНрд╡реЗрд░реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдкреНрд░рд▓реЛрднрди рдХреЗ рдЖрдЧреЗ рдЭреБрдХ рдЧрдП рдФрд░ рдПрдХ рдкреНрд░рд╡рд╛рд╕ рдореЗрдВ рдЗрд╕рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдпрд╛ред рдлрд┐рд░, рдЗрдВрдбреЗрдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЯрд╛рдЗрдкреЛ рдХреЗ рджреМрд░рд╛рди, рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдереНрд░рд╕реНрдЯ рд░реБрдХрд╛рд╡рдЯ рд╕реЗ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдкрд╣рд▓реЗ рд╣реА рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдпрд╣рд╛рдВ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдЖрдкрдХреЛ рдпрд╛ рддреЛ рд▓реЗрдирджреЗрди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХрдИ рдЫреЛрдЯреЗ рдкрд▓рд╛рдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдореЙрдбрд▓ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛

рдЗрд╕ рд╕рдмрдХ рдХреЛ рдЬреАрдЖрдИрдЖрдИ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдореЙрдбрд▓ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдареАрдХ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╡рд╣ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдореЙрдбрд▓ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдЕрдЧрд░ ActiveRecord.php рдлрд╝рд╛рдЗрд▓ рдЕрднреА рддрдХ application.compords рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рд╕рднреА рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реЛрдЧрд╛ред

class ActiveRecord extends CActiveRecord { const SCENARIO_CREATE = 'insert'; const SCENARIO_UPDATE = 'update'; const SCENARIO_SEARCH = "search"; /** Return model ID * * @return integer */ public function getId() { return $this->id; } /** * Returns the static ActiveRecord model. * Please note that you should have this exact method in all your CActiveRecord descendants! * @param string $className active record class name. * @return ActiveRecord the static model class */ public static function model($className=__CLASS__) { return parent::model($className); } } 


рд╡рд┐рд░рд╛рд╕рдд рдореЙрдбрд▓ рд╕реЗ рд╕рднреА рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХреЛ DRY рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░рд┐рдЯрд░реНрди рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ, рдпрд╣ рди рдХреЗрд╡рд▓ PHPDoc рдХреЗ рд▓рд┐рдП рдмрд▓реНрдХрд┐ рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рднреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдИрдбреАрдИ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдСрдЯреЛ-рд╕рдорд╛рдкрди рдЯрд╛рдЗрдкреЛрд╕ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИрдВ (рдпрд╣ рд╕рддреНрдпрд╛рдкрди рдореЗрдВ рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рди рдХреЗрд╡рд▓)ред

рдмреЗрд╕ рдореЙрдбрд▓

рдпрджрд┐ рдореЙрдбрд▓ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдРрд╕реЗ рдореЙрдбрд▓ рдХреЛ рджреЛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореВрд▓ рдореЙрдбрд▓ рдФрд░ рдореВрд▓ рдПрдХ рдореВрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
User -> BaseUser -> ActiveRecord -> CActiveRecord
рдЗрд╕реА рд╕рдордп, YII (рд╕рдВрдмрдВрдзрдкрд░рдХ рд╕рдВрдмрдВрдз, рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо, рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓реЗрдмрд▓) рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЗ рдЖрдзрд╛рд░ рдореЙрдбрд▓ рдореЗрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рд╣рдо рдЕрдкрдиреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдореЙрдбрд▓ рдХреЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред
рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдФрд░ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдореЗрдВ, рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдореЙрдбрд▓ () рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рдкрд╕реА рдЯреИрдЧ рдореЗрдВ рд╡рд┐рдзрд┐ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

  /** * Returns the static BaseUser model * * @param string $className active record class name. * @return BaseUser */ public static function model($className=__CLASS__) { return parent::model($className); } 


рдирд╛рдо рдХрд╛ рдЕрдиреБрд╡рд╛рдж

рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо Yii :: t () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдШрдЯрдХ рдХреЗ рд╡рд░реНрдЧ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбрд▓ рд╣реИ; рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЙрдбрд▓ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрд╕реЛрд▓ рдкрд╛рд░реНрд╕рд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реЛрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рдХрдВрд╕реЛрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред

  /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => Yii::t('BaseUser','ID'), 'firstName' => Yii::t('BaseUser','First Name'), 'middleName' => Yii::t('BaseUser','Middle Name'), 'lastName' => Yii::t('BaseUser','Last Name'), 'phone' => Yii::t('BaseUser','Phone Number'), 'email' => Yii::t('BaseUser','E-mail'), // and more... ); } 


рд╡рд┐рд╢реЗрд╖рддрд╛рд▓реЗрдмрд▓реНрд╕ () рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди, рдЖрдкрдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреЗрдЯрд▓реИрдмрд▓реНрд╕ рд╕реНрдерд┐рддрд┐ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдПред рдлреЙрд░реНрдо рдкрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╕рдордп рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдореЙрдбрд▓ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░

рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рд┐рдХреЙрд░реНрдб рд╕реНрдерд┐рддрд┐ рдлрд╝реАрд▓реНрдб, рдлрд╝реНрд▓реИрдЧ рдлрд╝реАрд▓реНрдб (рдмрд┐рдЯ рдорд╛рд╕реНрдХ), рдкреНрд░рдЧрддрд┐ рдлрд╝реАрд▓реНрдб рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд░реНрдерд╛рддреН, рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдордг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдХрд╛ рдореВрд▓реНрдп рд╕рдВрдХреБрдЪрд┐рдд рдФрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

  const STATUS_DRAFT = 1; const STATUS_PUBLIC = 2; const STATUS_TRASH = 3; const FLAG_HAS_CAR = 1; const FLAG_HAS_HOUSE = 2; const FLAG_HAS_CREDIT = 4; const FLAG_HAS_DEPOSIT = 8; 


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕реНрд░реЛрдд рдореЗрдВ рдРрд╕реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП рд╡реЗ рддреБрд░рдВрдд рд╣рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рддрд░реАрдХреЗ

рдореЙрдбрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рд╕реАрдзреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрдЧрд╛ред рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╕реЗрдЯрд░ рд╕рд╛рдЗрд▓реЗрдВрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдЯреНрдЯрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрдЯрд░ рдХреЛ рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореЙрдбрд▓ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╕реЗрдЯрд░ $ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреЗрдЯреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

  /** * Set user status * * @param int $status * @return \User */ public function setStatus($status){ $this->status = intval($status); return $this; } /** * Return First Name * * @return string */ public function getFirstName() { return (string)$this->upperFirst($this->firstName); } 


рдорд╛рдореВрд▓реА рдСрдкрд░реЗрд╢рди

рдХрднреА-рдХрднреА рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдПрдХ рдореЙрдбрд▓ рдкрд░ рдЫреЛрдЯреЗ рдСрдкрд░реЗрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд░реАрдХреЗ рдореЗрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд░реАрдХреЗ рдореЙрдбрд▓ рдХреЛ рдЕрдкрдиреЗ рдЕрдВрджрд░ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣реИрдВрдЧрд┐рдВрдЧ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ рднреА рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред
  /** * Make user active * * @return bool */ public function makeActive(){ if($this->hasEventHandler('onBeforeCount')){ $this->onBeforeCount(new CEvent($this)); } $result = $this->setStatus(self::STATUS_ACTIVE) ->save(); if($this->hasEventHandler('onAfterMakeActive')){ $this->onAfterMakeActive(new CEvent($this)); } return $result; } 


рдЗрд╕ рдкрд░, рдореИрдВ рджрд░реНрд╢рдХреЛрдВ рдХреА рд░рд╛рдп рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзрд┐рдд рдХрд░реВрдВрдЧрд╛ред

UPD : рдореАрдЯрд┐рдЪрд┐рдХ рдФрд░ рдлреЗрд╕рд░ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП ред

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


All Articles