
рд╣рд╛рд▓ рд╣реА рдореЗрдВ
, рд╕реА рдореЗрдВ рд▓рд┐рдЦреЗ
рдЧрдП PHP MVC рдлреНрд░реЗрдорд╡рд░реНрдХ
рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣рдм рдкрд░
рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ -
рдлрд╛рд▓реНрдХреЛрдирдкреАрдкреА ред
рдпрд╣ рд▓реЗрдЦ
рдореВрд▓ рдкрд╛рда рдХрд╛ рдПрдХ рдирд┐: рд╢реБрд▓реНрдХ рдЕрдиреБрд╡рд╛рдж рд╣реИ, рдЬреЛ рдПрдХ рд╕рд░рд▓ рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдореБрдЦреНрдп рдкрд╣рд▓реБрдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдЧрд╛ред
рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЪрд░рдг рджрд░ рдЪрд░рдг рджреЗрдЦреЗрдВред
рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо
рдЬреАрдердм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ
рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрд▓реЗрдЦ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдлрд╛рд▓реНрдХрди PHP рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИ, рдпрд╣ рд╕рдм рдПрдХ PHP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдлрд╛рд▓реНрдХрди PHP рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, phpinfo () рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ "рдлрд╛рд▓реНрдХрди" рдЕрдиреБрднрд╛рдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдпрд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдЪрд▓рд╛рдПрдВ:
<?php print_r(get_loaded_extensions());
рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмреАрдЪ рдЖрдкрдХреЛ рдлрд╛рд▓реНрдХрди рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
Array ( [0] => Core [1] => libxml [2] => filter [3] => SPL [4] => standard [5] => phalcon [6] => pdo_mysql )
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛
рдлрд╛рд▓реНрдХрди рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрд╕ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкрд╛рда рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ /
рдРрдк /
рдирд┐рдпрдВрддреНрд░рдХ /
рдореЙрдбрд▓ /
рд╡рд┐рдЪрд╛рд░ /
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ /
рд╕реАрдПрд╕рдПрд╕ /
img /
js /
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдврд╛рдВрдЪреЗ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА" рдЬреИрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ; рдлрд╛рд▓реНрдХрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрдореЛрд░реА рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рд╕реБрдВрджрд░ рдпреВрдЖрд░рдПрд▓
рдпрд╣ рдкрд╛рда рдорд╛рдирд╡-рдкрдардиреАрдп URL (NC) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕реАрдПрдирд╕реА рди рдХреЗрд╡рд▓ рдЦреЛрдЬ рдЗрдВрдЬрди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рднреА рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рджреНрд╡рд╛рд░рд╛ рд╕реАрдПрдирд╕реА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЙрдирдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг Apache рдХреЗ рд▓рд┐рдП
mod_rewrite
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░, рд╣рдорд╛рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдореЗрдВ рджреЛ .htaccess рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ, рджреВрд╕рд░рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВред
рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдз
public/
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред рдпрд╣ рдХрджрдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реБрдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рд╕реЗ рдЫрд┐рдкреЗ рд░рд╣реЗред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдирд┐рдпрдореЛрдВ рдХрд╛ рджреВрд╕рд░рд╛ рд╕реЗрдЯ рдЬрд╛рдВрдЪрддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдЧрд╛рдпрдм рд╣реИ, рддреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ: рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рджреЛрдиреЛрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ public_html рд╕реЗ рдкрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░, js рдФрд░ css рдЙрдкрд▓рдмреНрдз рдЫреЛрдбрд╝рдХрд░ред рд▓реЗрдХрд┐рди рдЖрдЗрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рди рд╣реЛрдВредрдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ (рдмреВрдЯрд╕реНрдЯреНрд░реИрдк)
рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ; рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ, рдЬреЛ рдЙрд╕рдХреЗ рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдлрд╝рд╛рдЗрд▓
public/index.php
рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<?php try {
рдиреАрдЪреЗ рд╣рдо рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред
autoloader
рдЖрд░рдВрднреАрдХрд░рдг рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдСрдЯреЛрд▓реИрдбрд░ рдкрдВрдЬреАрдХрд░рдг рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдФрд░ рдореЙрдбрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреА рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
Phalcon\Loader
рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдХреНрд╖рд╛рдПрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдордиреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ред
<?php $loader = new \Phalcon\Loader(); $loader->registerDirs( array( '../app/controllers/', '../app/models/' ) )->register();
рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди
рдлрд╛рд▓реНрдХрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ
рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди (
рд╡рд┐рдХреА ) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЬрдЯрд┐рд▓ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред
рдлрд╛рд▓реНрдХрди рдореЗрдВ рдПрдХ рддрдВрддреНрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдВрддреНрд░
Phalcon\DI
рд╡рд░реНрдЧ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рд╕рдВрдпреБрдХреНрдд рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
<?php
рдлрд╛рд▓реНрдХрди \ DI \ FactoryDefault, рдлрд╛рд▓реНрдХрди \ DI рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИ
Phalcon\DI
рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдирдХ рдШрдЯрдХреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛ рдЪрд░рдг "рджреГрд╢реНрдп" рдШрдЯрдХ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИред рдЪреВрдБрдХрд┐ рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдСрдЯреЛрд▓реИрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдирдХрд╛ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
<?php
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдШрдЯрдХ
рдлрд╛рд▓реНрдХрди \ Mvc \ Application рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдиреБрд░реЛрдз рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛, рдорд╛рд░реНрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдкрд░ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред
<?php $application = new \Phalcon\Mvc\Application(); $application->setDI($di); echo $application->handle()->getContent();
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рдХреЛрдб рдХреЗ 30 рд╕реЗ рдХрдо рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдПрдХ рд▓рдЪреАрд▓реЗ рдПрдорд╡реАрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЪрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдирд┐рдпрдВрддреНрд░рдХ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдлрд╛рд▓реНрдХрди рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ "рдПрдХреНрд╢рди" рдирд╛рдо рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдирд┐рдпрдВрддреНрд░рдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<?php class IndexController extends \Phalcon\Mvc\Controller { public function indexAction() { echo "<h1>Hello!</h1>"; } }
рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рддреНрдпрдп "рдирд┐рдпрдВрддреНрд░рдХ" рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рддреНрдпрдп "рдХреНрд░рд┐рдпрд╛" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдмрдзрд╛рдИ рд╣реЛ, рдЖрдк рдПрдХ рдмрд╛рдЬрд╝ рдХреЗ рд╕рд╛рде рдЙрдбрд╝ рд░рд╣реЗ рд╣реИрдВ! (рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ: рдлрд╛рд▓реНрдХрди рдЕрдВрдЧреНрд░реЗрдЬреА рдлрд╛рд▓реНрдХрди - рдмрд╛рдЬрд╝ * рдХреЗ рд╕рд╛рде рд╡реНрдпрдВрдЬрди рд╣реИ)рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (рджреЗрдЦреЗрдВ)
рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рд╕реАрдзреЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рднреЗрдЬрдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╛рд▓реНрдХрди рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдЕрдВрддрд┐рдо рдХреНрд░рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрди рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рдеред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣
app/views/index/index.phtml
:
<?php echo "<h1>Hello!</h1>";
рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрд╡рдпрдВ (
app/controllers/IndexController.php
) рдореЗрдВ рдЕрдм рдПрдХ рдЦрд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╢рд╛рдорд┐рд▓ рд╣реИ:
<?php class IndexController extends \Phalcon\Mvc\Controller { public function indexAction() { } }
рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рджреГрд╢реНрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╕рдорд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкрдВрдЬреАрдХрд░рдг рдлрд╛рд░реНрдо
рдЗрд╕рдореЗрдВ рдЕрдиреНрдп "рд╕рд╛рдЗрдирдЕрдк" рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╡реНрдпреВ
app/views/index/index.phtml
рдХреЛ рдмрджрд▓реЗрдВ:
<?php echo "<h1>Hello!</h1>"; echo Phalcon\Tag::linkTo("signup", "Sign Up Here!");
рдЙрддреНрдкрдиреНрди HTML рдирдП рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде <a> рдЯреИрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛:
<h1>Hello!</h1> <a href="/test/signup">Sign Up Here!</a>
рд▓рд┐рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдлрд╛рд▓реНрдХрди \ рдЯреИрдЧ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдЖрдкрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ HTML рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдк HTML рдХреЛрдб рдХреА рдкреАрдврд╝реА рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдирдпрд╛ "рд╕рд╛рдЗрдирдЕрдк" рдХрдВрдЯреНрд░реЛрд▓рд░ (
app/controllers/SignupController.php
) рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
<?php class SignupController extends \Phalcon\Mvc\Controller { public function indexAction() { } }
рдЦрд╛рд▓реА рдХреНрд░рд┐рдпрд╛ "indexAction" рдкреНрд░рдкрддреНрд░ (
app/views/signup/index.phtml
) рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп рдкрд░ рд╕реАрдзреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
<?php use Phalcon\Tag; ?> <h2>Sign using this form</h2> <?php echo Tag::form("signup/register"); ?> <p> <label for="name">Name</label> <?php echo Tag::textField("name") ?> </p> <p> <label for="name">E-Mail</label> <?php echo Tag::textField("email") ?> </p> <p> <?php echo Tag::submitButton("Register") ?> </p> </form>
рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

Phalcon\Tag
рдлрд╛рд░реНрдо рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
Phalcon\Tag::form
рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдордиреЗ рдЖрд╡реЗрджрди рдХреА рдирд┐рдпрдВрддреНрд░рдХ / рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдкрде рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рдлреЙрд░реНрдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред
"рд░рдЬрд┐рд╕реНрдЯрд░" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЖрдк "рд╕рд╛рдЗрдирдЕрдк" рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ "рд░рдЬрд┐рд╕реНрдЯрд░" рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реБрдП, рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рджреЗрдЦреЗрдВрдЧреЗред
PhalconException: рдПрдХреНрд╢рди "рд░рдЬрд┐рд╕реНрдЯрд░" рдХрдВрдЯреНрд░реЛрд▓рд░ "рд╕рд╛рдЗрдирдЕрдк" рдкрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛
рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛:
<?php class SignupController extends \Phalcon\Mvc\Controller { public function indexAction() { } public function registerAction() { } }
рдлреЙрд░реНрдо рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдПрдХ рдЦрд╛рд▓реА рдкреЗрдЬ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рджрд░реНрдЬ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдорд╡реАрд╕реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕реНрд╡рдЪреНрдЫ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрджрд░реНрд╢
рдлрд╛рд▓реНрдХрди рдкреАрдПрдЪрдкреА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдУрдЖрд░рдПрдо рд▓рд╛рддрд╛ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(70) NOT NULL, `email` varchar(70) NOT NULL, PRIMARY KEY (`id`) );
рдореЙрдбрд▓ рдХреЛ
app/models
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдПрдХ рдореЙрдбрд▓ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ рдЬреЛ
users
рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
<?php class Users extends \Phalcon\Mvc\Model { }
DB рдХрдиреЗрдХреНрд╢рди
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдореЙрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрд░рдВрднрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреНрдп рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдиреНрдп рдШрдЯрдХ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдлрд╝рд╛рдЗрд▓ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ / index.php) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
<?php try {
рдЕрдм рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдмрд╛рдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдПрдХ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдбреЗрдЯрд╛ рдХреА рдмрдЪрдд
рд╣рдорд╛рд░рд╛ рдЕрдЧрд▓рд╛ рдЪрд░рдг: рдлреЙрд░реНрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ред
рдЖрдЗрдП рдХрд╛рд░реНрд░рд╡рд╛рдИ "рд░рдЬрд┐рд╕реНрдЯрд░" рдЬреЛрдбрд╝реЗрдВ:
<?php class SignupController extends \Phalcon\Mvc\Controller { public function indexAction() { } public function registerAction() {
рдЖрдк рдХрднреА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреЛ
рд╕рддреНрдпрд╛рдкрди / рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣рдорд▓реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рд╣рдо рджрд░реНрдЬ рдирд╛рдо рдХреЗ рд▓рд┐рдП "
string
" рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдИрдореЗрд▓ рдкрддреЗ рдкрд░ "
email
" рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╣рдореЗрдВ рдХреЛрдИ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╡рд░реНрдг рдирд╣реАрдВ рднреЗрдЬрд╛ рд╣реИред
рдлрд╛рд▓реНрдХрди \ рдлрд╝рд┐рд▓реНрдЯрд░ рдШрдЯрдХ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЧреЗрдЯрдкреЛрд╕реНрдЯ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо
Users
рдореЙрдбрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред рдореЙрдбрд▓ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЧреБрдг
users
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдирдП рдореЙрдбрд▓ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ рдФрд░
save()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
save()
рд╡рд┐рдзрд┐ рдПрдХ рдмреВрд▓рд┐рдпрди рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдлрд▓ рд░рд╣реА рдпрд╛ рдирд╣реАрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рддреНрдпрд╛рдкрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ
not null
(рдпрд╛рдиреА, рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ)ред рдпрджрд┐ рдЖрдк рдлрд╝реЙрд░реНрдо рд╕рдмрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдлрд╝реАрд▓реНрдб рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдИрдВ: рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдИрдореЗрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕рдмрдХ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдлрд╛рд▓реНрдХрди PHP рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣ рддрдереНрдп рдХрд┐ рдлрд╛рд▓реНрдХрди рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ PHP рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рд╛рджрдЧреА рдХрд╛ рдЦрдВрдбрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЖрдкрдХреЛ
рдореИрдиреБрдЕрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдлрд╛рд▓реНрдХрди рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдЦреЛрд▓реЗрдЧрд╛!
___
* рдмрд╛рдЬрд╝ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкрдХреНрд╖реА рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдЬреАрд╡рд┐рдд рдкреНрд░рд╛рдгреА рд╣реИред рд▓реЗрдХрд┐рди, рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХреНрд╖реИрддрд┐рдЬ рдЙрдбрд╝рд╛рди рдХреА рдЧрддрд┐ рдореЗрдВ рдмрд╛рдЬрд╝ рддреЗрдЬреА рд╕реЗ рдиреАрдЪрд╛ рд╣реИред