MVC + рдкрд░рд┐рджреГрд╢реНрдп рдмрдирд╛рдо рдореЛрдЯрд╛ рдирд┐рдпрдВрддреНрд░рдХ
рдЖрдзреБрдирд┐рдХ PHP рдлреНрд░реЗрдорд╡рд░реНрдХ (рд╕рд┐рдореНрдлрдиреА, рд▓рд╛рд░рд╡реЗрд▓, рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рд░ рдЬрдЧрд╣) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдореЙрдбрд▓-рд╡реНрдпреВ-рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлреИрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ ( fat controllers
) рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рдг рд╣реЛрддреЗ рд╣реИрдВ, рд╕рднреА рдХреА рдирд┐рдВрджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдФрд░ рдЦреБрдж рдХреЛ рд░реВрдкрд░реЗрдЦрд╛ред
рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдФрд░ рдХреНрдпрд╛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдЪрд▓реЛ рдареАрдХ рд╣реИред
рд╢рдмреНрджрд╛рд╡рд▓реА
- рдореЙрдбрд▓ - рдореЙрдбрд▓ (рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рд╢реЗрдкрд░)
- рджреЗрдЦреЗрдВ - рджреГрд╢реНрдп (рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдбреЗрдХреЛрд░реЗрдЯрд░)
- рдирд┐рдпрдВрддреНрд░рдХ - рдирд┐рдпрдВрддреНрд░рдХ (рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореЙрдбрд▓-рд╡реНрдпреВ рд╕рдордиреНрд╡рдпрдХ)
- рдЦрд╛рдХрд╛ - рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдЦрд╛рдХрд╛
- рдкреНрд░рддрд┐рдкрд╛рджрди - рдкреНрд░рддрд┐рдкрд╛рджрди (рдЧрдарди, рдкреНрд░рд╕реНрддреБрддрд┐ рдЫрд╡рд┐ рдХрд╛ рдбрд┐рдЬрд╛рдЗрди)
- рд░реЗрдВрдбрд░рд░ - рд░реЗрдВрдбрд░рд░ (рд╢реЗрдкрд░, рдкреНрд░рд╕реНрддреБрддрд┐ рдЫрд╡рд┐ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░)
рдореЛрдЯрд╛ рдирд┐рдпрдВрддреНрд░рдХ
рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕рд╛ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ:
class UserController { public function actionUserHello($userId) {
рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ vinaigrette! рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд╕рдВрднрд╡ рд╣реИ рд╡рд╣ рдорд┐рд╢реНрд░рд┐рдд рд╣реИ - рджреЛрдиреЛрдВ рдореЙрдбрд▓, рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐, рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдХ рдЦреБрдж!
рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХрд╕рдХрд░ рд╡рд╛рдпрд░реНрдб рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдирд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рдмрдЬрд╝ рдирд╣реАрдВ рд╣реИред рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЛрдбрд╝ рджреЗрдЦрддреЗ рд╣реИрдВ - рдкрд╣рд▓реЗ рдФрд░ рдЖрдЦрд┐рд░реА рдирд╛рдо рд╕реЗ рдПрдХ рдкреВрд░реНрдг рдирд╛рдо рдХрд╛ рдЧрдардиред рдФрд░ рдпрд╣ рдПрдХ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдПрдХ рдФрд░ рдмрд╛рдд: рд╣рдо рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИред рдЕрд░реНрдерд╛рддреН: рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдПрдХ рд╣реА рддрд░реАрдХрд╛ рд╣реИ (рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг)! рдХреЗрд╡рд▓ рдПрдХ: php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░! рдФрд░ рдЕрдЧрд░ рдореБрдЭреЗ рдкреАрдбреАрдПрдл рдЪрд╛рд╣рд┐рдП? рдФрд░ рдЕрдЧрд░ рдореИрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдПрдХ php рд▓рд╛рдЗрди рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рд╕реИрдХрдбрд╝реЛрдВ рдЫреЛрдЯреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдбрд┐рдЬрд╛рдЗрди рдереЗред рдореБрдЭреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░рд░ рдХреЛ рдЦреБрдж рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЧрд░рдо рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдорд╛рдорд▓рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╣реИред
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢:
рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдорд╡реАрд╕реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрдзреБрдирд┐рдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВ:
- рдПрдорд╡реАрд╕реА-рд╡реНрдпреВ (рджреЗрдЦреЗрдВ) рдХреА рд╕рдВрдХреАрд░реНрдг рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗрд╡рд▓ "рдХрд┐рд╕реА рдкреАрдПрдЪрдкреА рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВ " рдХреЗ рдмрдЬрд╛рдп "PHP рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВ" ред
- рдПрдорд╡реАрд╕реА-рдореЙрдбрд▓ рдХреА рд╕рдВрдХреАрд░реНрдг рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗрд╡рд▓ "рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдбреЛрдореЗрди" рдХреЗ рдмрдЬрд╛рдп "рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рд╕рдВрдХрд▓рдХ ред "
- рд╡реЗ рддрдерд╛рдХрдерд┐рдд "рдерд┐рдХ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕" рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЙрдХрд╕рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ: рд╡реНрдпрд╛рдкрд╛рд░, рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рдмрд╛рддрдЪреАрддред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ MVC рдХреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ - рддреНрд░рдп рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрдиред
рдЗрди рдХрдорд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, MVC рдХреЗ рдШрдЯрдХреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рджреГрд╢реНрдп рдПрдХ рд░реЗрдВрдбрд░рд░ рд╣реИ
рдкрд╣рд▓реЗ рджреЛрд╖ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
- рдПрдорд╡реАрд╕реА-рд╡реНрдпреВ (рджреЗрдЦреЗрдВ) рдХреА рд╕рдВрдХреАрд░реНрдг рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗрд╡рд▓ "рдХрд┐рд╕реА рдкреАрдПрдЪрдкреА рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВ " рдХреЗ рдмрдЬрд╛рдп "PHP рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВ" ред
рдпрд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╣реБрдд рд╕реВрддреНрд░реАрдХрд░рдг рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд░реЗрдВрдбрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирдИ renderer
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╡реНрдпреВ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
class View { public $template, $data, $renderer; public function __costruct($template, $data, $renderer = NULL) {} }
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ renderer
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рдХреЛрдИ рднреА callable
рдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЗрд╖рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреА рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗрд╡рд▓ рдПрдХ рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рднрд▓реЗ рд╣реА рд╡реЗ рдХрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, renderer
рддрд░реНрдХ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реЗрдВрдбрд░рд░ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рд╕рд░рд▓ рд╣реИ? рдмрд╕ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬреЛ View
рдПрдорд╡реАрд╕реА рдореЗрдВ рд╣реИ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ View
рдирд╣реАрдВ рд╣реИ рдЬреЛ рд░реВрдкрд░реЗрдЦрд╛ рдореЗрдВ рд╣реИред View
рдЬреЛ View
рд╣реИ рд╡рд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛ред рд▓реЗрдХрд┐рди View
, рдЬреЛ рдПрдорд╡реАрд╕реА рдореЗрдВ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрди рд╕рдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдХреНрдпреЛрдВ? рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдорд╡реАрд╕реА View
, рдпрд╣ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдХрд╛ рдХреЛрдИ рднреА рдХрдирд╡рд░реНрдЯрд░ рд╣реИ , рдФрд░ рди рдХреЗрд╡рд▓ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИред рдЬрдм рд╣рдо рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
$name = ' '; return "Hello, {$name}!";
рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐:
$return json_encode($name);
рддрдм рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ View
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ MVC рдореЗрдВ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА View
рдХреЛ View
рдЬреЛ рдЪреМрдЦрдЯреЗ рдореЗрдВ рд╣реИ!
рд▓реЗрдХрд┐рди рдЕрдм рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рд╣реИ: рд╡реЗ View
, рдЬреЛ рдЪреМрдЦрдЯреЗ рдореЗрдВ - рдпрд╣ рдЙрди View
рдХрд╛ рд╕рдмрд╕реЗрдЯ рд╣реИ, рдЬреЛ рдПрдорд╡реАрд╕реА рдореЗрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдХреАрд░реНрдг рд╕рдмрд╕реЗрдЯ, рдЕрд░реНрдерд╛рддреН, рдпрд╣ рдХреЗрд╡рд▓ PHP рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИред
рд╕рд╛рд░рд╛рдВрд╢: рдпрд╣
, рдЕрд░реНрдерд╛рдд рдбреЗрдЯрд╛ рдЫрд╡рд┐ рдХрд╛ рдХреЛрдИ рднреА рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рд╡рд╣ View
рд╣реИ рдЬреЛ MVC рдореЗрдВ рд╣реИред рдФрд░ рд╡реЗ View
, рдЬреЛ рдЪреМрдЦрдЯреЗ рдореЗрдВ рд╣реИрдВ, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛
ред
рдбреЛрдореЗрди рдореЙрдбрд▓ / рдореЙрдбрд▓ рджреЗрдЦреЗрдВ (ViewModel / DomainModel)
рдЕрдм рджреВрд╕рд░реА рдХрдорд┐рдпрд╛рдВ рджреЗрдЦреЗрдВ:
- рдПрдорд╡реАрд╕реА-рдореЙрдбрд▓ рдХреА рд╕рдВрдХреАрд░реНрдг рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗрд╡рд▓ "рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдбреЛрдореЗрди" рдХреЗ рдмрдЬрд╛рдп "рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рд╕рдВрдХрд▓рдХ ред "
рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдорд╡реАрд╕реА рдореЙрдбрд▓ рдПрдХ рдЬрдЯрд┐рд▓ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рдЯреБрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдореЙрдбрд▓ (DomainModel) рдФрд░ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЙрдбрд▓ (ViewModel): рд╕рдореБрджрд╛рдп рджреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдореЙрдбрд▓ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реИред
рдПрдХ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╡рд╣ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдореЙрдбрд▓ рдбреЗрдЯрд╛ред рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ 'рдкреНрд░рдердо рдирд╛рдо' рдФрд░ 'рдЕрдВрддрд┐рдо рдирд╛рдо' рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдореЙрдбрд▓ рдХреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдЪреМрдЦрдЯреЗ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХрд╛ рдЕрдкрдирд╛ рдмреНрд░рд╣реНрдорд╛рдВрдб рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдбреЗрдЯрд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЛрдореЗрди рдбреЗрдЯрд╛ рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ: "рд╣реИрд▓реЛ, рдЗрд╡рд╛рди!", рдпрд╛ "рдбрд┐рдпрд░ рдЗрд╡рд╛рди рдкреЗрддреНрд░реЛрд╡!", рдпрд╛ рдЗрд╡рд╛рди рдП рдкреЗрдЯреНрд░реЛрд╡ рдХреЗ рд▓рд┐рдП рднреА! "ред рдЗрди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбрд▓ - рдкреНрд░рд╕реНрддреБрддрд┐ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдпрд╣ рдореЙрдбрд▓ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рднреА рдЖрдзреБрдирд┐рдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЕрдЧрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ - рд╡реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рджреГрд╢реНрдп рдореЙрдбрд▓ рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред рдФрд░ рд╡реЗ рдирдлрд░рдд рд▓реЗрдХрд┐рди рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдлреИрдЯ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ!
рдХреБрд▓: рдПрдорд╡реАрд╕реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рджреГрд╢реНрдп рдореЙрдбрд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдФрд░ рдЙрдирдХрд╛ рдбреЗрдЯрд╛ рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдкрд░рд┐рджреГрд╢реНрдп рдмрдирд╛рдо рд╡рд╕рд╛ рдирд┐рдпрдВрддреНрд░рдХ
рдЪреМрдЦрдЯреЗ рдХрд╛ рдПрдХ рдЕрдВрддрд┐рдо рджреЛрд╖ рд╣реИ:
- рд╡реЗ рддрдерд╛рдХрдерд┐рдд "рдерд┐рдХ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕" рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЙрдХрд╕рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ: рд╡реНрдпрд╛рдкрд╛рд░, рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рдмрд╛рддрдЪреАрддред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ MVC рдХреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ - рддреНрд░рдп рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрдиред
рдпрд╣рд╛рдВ рд╣рдо рдПрдорд╡реАрд╕реА рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред рдЪрд▓реЛ рд╕реНрдкрд╖реНрдЯ рд╣реЛред рдЗрд╕рд▓рд┐рдП, MVC рдиреЗ рддреНрд░рдп рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рддрд░рдг рдХреЛ рдорд╛рдирд╛:
- рдирд┐рдпрдВрддреНрд░рдХ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд▓реЙрдЬрд┐рдХ рд╣реИ , рдЕрд░реНрдерд╛рдд рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ (рдЕрдиреБрд░реЛрдз - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдФрд░ рдЖрдВрддрд░рд┐рдХ (рдореЙрдбрд▓ - рдкреНрд░рд╕реНрддреБрддрд┐) рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд,
- рдореЙрдбрд▓ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╣реИ , рдЕрд░реНрдерд╛рдд рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдмрдирд╛рдирд╛,
- рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рддрд░реНрдХ рд╣реИ , рдЕрд░реНрдерд╛рдд рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдЬрд╛рд╡рдЯред
рдЖрдЧреЗ рдмрдврд╝реЛред рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЗ рджреЛ рд╕реНрддрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
- рд╕рдВрдЧрдардирд╛рддреНрдордХ рд╕реНрддрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ,
- рдХрд╛рд░реНрдпрдХрд╛рд░реА рд╕реНрддрд░ рдореЙрдбрд▓ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред
рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрдЯреАрдпрд░, рдореЙрдбрд▓ рдФрд░ рд╡реНрдпреВ рдкреНрд▓реЙред рдпрд╣ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рд╣реИред рдФрд░ рдЕрдЧрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ? рдирд┐рдпрдВрддреНрд░рдХ рдмрд┐рд▓реНрдХреБрд▓ рдХреИрд╕реЗ рдЪрд▓рддрд╛ рд╣реИ? рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЙрдбрд▓ рдФрд░ рджреГрд╢реНрдп рд╣рд▓ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?
рдирд┐рдпрдВрддреНрд░рдХ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ:
- рдПрдХ рдЖрд╡реЗрджрди рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ,
- рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдореЙрдбрд▓ рдФрд░ рдХреМрди рд╕рд╛ рджреГрд╢реНрдп рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ,
- рдЪрдпрдирд┐рдд рдореЙрдбрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ,
- рдореЙрдбрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЪрдпрдирд┐рдд рджреГрд╢реНрдп рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ,
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рджреЗрдЦреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред рдЗрд╕ рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд▓рд┐рдВрдХ рд╣реЛред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд░рдорд┐рдХ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЙрдбрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдпреЗ рдореЙрдбрд▓ рдбреЗрдЯрд╛ рд╡реНрдпреВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЙрддреНрддрд░ рдореЗрдВ рдмрджрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬреИрд╕реЗ, рдПрдХ humanoid рдЕрдиреБрд░реЛрдз рдХреЛ templatizators рдХреЗ рд╕рд╛рде рдиреЗрддреНрд░рд╣реАрди рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ Android рдЕрдиреБрд░реЛрдз JSON рдПрдиреНрдХреЛрдбрд░ рдХреЗ рд╕рд╛рде рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рдЖрдЗрдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХрд▓рд╛рдХрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ - рдореЙрдбрд▓ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ред рд╣рдордиреЗ рдКрдкрд░ рдХрд╣рд╛ рдХрд┐ рджреЛ рдЙрдк-рдШрдЯрдХреЛрдВ рдореЗрдВ рдореЙрдбрд▓ рдХреЗ рдЕрдкрдШрдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ: рдбреЛрдореЗрди рдореЙрдбрд▓ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЙрдбрд▓ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдХрд▓рд╛рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рджреЛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рддреАрдиред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛
>>
рд╡рд╣рд╛рдБ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
>>
>>
рд╕рд╡рд╛рд▓ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИ: рдХреЗрд╡рд▓ рджреЛ рдпрд╛ рддреАрди рд╣реА рдХреНрдпреЛрдВ? рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдЙрддреНрддрд░ рд╣реИ, рдИрд╢реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рдЬрд┐рддрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрддрдиреЗ рд╣реА рд▓реЗ рд▓реЛ!
рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХрд▓рд╛рдХрд╛рд░ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ: рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛, рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рдХ, рд╡рд┐рднрд┐рдиреНрди рд░реЗрдВрдбрд░рд░реНрд╕, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдЬреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдордирднрд╛рд╡рди рд╣реИред
рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:
- рдХрд╛рд░реНрдпрдХрд╛рд░реА рд╕реНрддрд░ MVC (
-
) рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рдВрдХ рдкрд┐рдЫрд▓реЗ рд▓рд┐рдВрдХ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдЧрд▓реЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИред - рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдХрд╛ рдЗрдирдкреБрдЯ рдЖрд╡реЗрджрди рдЕрдиреБрд░реЛрдз рд╣реИред
- рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ Scenario
рдХрд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдирд╛рдо рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХрд▓реНрдк рдПрдХ рджреГрд╢реНрдп (рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ), рдПрдХ рдлрд┐рд▓реНрдЯрд░ (рдПрдХ рдбреЗрдЯрд╛ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ), рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реИред
рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЕрд░реНрдерд╛рддреН: рдкрд░рд┐рджреГрд╢реНрдп рдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдорд╛рди рд▓реА - рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЙрдбрд▓ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдХреЗрд╡рд▓ рджреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдВ рд╣реИрдВ: рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ (рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛ред рдФрд░ рдпрд╣ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдПрдорд╡реАрд╕реА рддреНрд░рдп рдХреЗ рд╕рднреА рдШрдЯрдХ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рднреА рдПрдХ рдФрд░ рд╕рдореНрдорд╛рди рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ - рдПрдорд╡реАрд╕реАрдПрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рд╢реБрджреНрдз рдЖрдВрддрд░рд┐рдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореЛрдЯрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ MVC рдкреИрдЯрд░реНрди рдХреА рдПрдХ рдФрд░ рднрд┐рдиреНрдирддрд╛ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕ рднрд┐рдиреНрдирддрд╛ рдХреЛ MVCS
- Model-View-Controller-Scenario
ред
рдФрд░ MVC рдЕрдкрдШрдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд▓рд╛рдЗрдиреЗрдВред рдЖрдзреБрдирд┐рдХ рдврд╛рдВрдЪреЗ, рдЬрд╣рд╛рдВ рд╕рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реАрдорд╛ рддрдХ рд╡рд┐рдШрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╡реИрдЪрд╛рд░рд┐рдХ MVC рднрд╛рдЧ рд╕реЗ рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдЬреИрд╕реЗ HTTP
рдФрд░
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред рдирддреАрдЬрддрди, рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд░рд┐рд╖реНрдХреГрдд
, рдФрд░ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЕрдиреБрд░реЛрдз рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧрд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ MVC рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреНрд░реЗрдорд╡рд░реНрдХ рдиреЗ рдПрдорд╡реАрд╕реА рдХреЗ рджреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ - рдбреЛрдореЗрди рдореЙрдбрд▓ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреАред рдореИрдВ рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдПрдорд╡реАрд╕реА рдХрд╛ рдкрд░рд┐рд╢реЛрдзрди рдФрд░ рд╕рдорд╡рд░реНрддреАрдХрд░рдг рдЬрд╛рд░реА рд╣реИ рдФрд░ рдирд┐рд░рдВрддрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЧреВрдВрдЬ рд░рд╣рд╛ рд╣реИред
MVCS рдЙрджрд╛рд╣рд░рдг
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдлреИрдЯ рдХреЛрд░реНрдЯреЛрд▓рд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг MVCS рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо MVCS рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
$mvcs = new MvcsController();
MVCS рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрд╛рд╣рд░реА рд░рд╛рдЙрдЯрд░ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд░рд╛рдЙрдЯрд░ рдХреЛ рдлреЙрд░реНрдо рдХреЗ рдпреВрдЖрд░рдЖрдИ рдХреЛ 'рдпреВрдЬрд░ / рд╣реЗрд▓реЛ / рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕' рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ:
$requestAction = 'user/hello';
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ MVCS рдирд┐рдпрдВрддреНрд░рдХ URI рдХреЗ рдмрдЬрд╛рдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ MVCS рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЖрдЗрдП рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдпрд╣ рдПрдХ '>' рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рддреАрди рдбреЗрдЯрд╛ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ:
- 'UserModel' рдбреЛрдореЗрди рдореЙрдбрд▓ 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛' рдХрд╛ рдирд╛рдо рд╣реИ, рдореЙрдбрд▓ рдХрд╛ рдЗрдирдкреБрдЯ рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдЧрд╛, рдЖрдЙрдЯрдкреБрдЯ рдореЙрдбрд▓ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛:
- 'UserViewModel' рджреГрд╢реНрдп рдореЙрдбрд▓ рдХрд╛ рдирд╛рдо рд╣реИ рдЬреЛ рдбреЛрдореЗрди рдбреЗрдЯрд╛ рдХреЛ рджреГрд╢реНрдп рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ,
- is рд╡реНрдпреВ, рд╣реИрд▓реЛ тАЩрдПрдХ PHP рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпреВ, рдЯреЗрдореНрдкрд▓реЗрдЯтАЩ рд╣реИ рдЬрд┐рд╕реЗ 'рд╣реИрд▓реЛ тАЩрдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рд╣рдореЗрдВ рдХреЗрд╡рд▓ MVCS рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдХреНрд▓реЛрдЬрд░ рдлрдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рджреЛ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ! рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рджреГрд╢реНрдпреЛрдВ (рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬреИрд╕реЗ 'рджреГрд╢реНрдп') рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдФрд░ рдХреБрдЫ рдирд╣реАрдВред
рдФрд░ рдЕрдм рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП MVCS рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ:
PHP MVCS рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ github.com рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг MVCS рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИред