MVC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП
Silex рдорд╛рдЗрдХреНрд░реЛ-рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдПрдХ
рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рджреЛрд╣рд░рд╛ рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рд╛ред рд╡рд┐рдзрд┐ рдХреЛ рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐:
- ORM рдХреЛ рд╣рдореЗрд╢рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдореИрдВ рдореЙрдбрд▓ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ;
- Silex рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА (рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ) рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ;
- рдЕрдкрдиреЗ рдСрдЯреЛрд▓рд░рд╛рдЗрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЬрдм рдЖрдк рд╕рд╣реА рдЪреАрдЬрд╝ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╕рдВрдЧреАрддрдХрд╛рд░ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡реЗрджрди рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ:
+ project | + protected | composer.json | composer.phar | composer.lock | + app | + Controllers | + Models | + Views | + vendor | + providers | + Providers | + public | .htaccess | index.php | + css | + img | + js
рдореИрдВрдиреЗ
project/public
рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ
.htaccess
рдХрдореНрдкреЛрдЬрд╝рд░ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Silex рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, Silex рдЗрд╕ рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ:
- рдПрдХ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
- рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдЯреЛрд▓реИрдбрд░ рдмрдирд╛рдирд╛ред
рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ
project/protected/composer.json
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ (рдпрд╣ рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░):
{
"рдЖрд╡рд╢реНрдпрдХрддрд╛": {
"silex / silex": "1.0ред *"
}
"рдиреНрдпреВрдирддрдо-рд╕реНрдерд┐рд░рддрд╛": "рджреЗрд╡",
"рдСрдЯреЛрд▓реЙрдб": {
"psr-0": {
"рдкреНрд░рджрд╛рддрд╛": "",
"рдирд┐рдпрдВрддреНрд░рдХреЛрдВ": "рдПрдкреНрд▓рд┐рдХреЗрд╢рди /"
}
}
}
рдпрд╣рд╛рдБ рд╣рдо рдЦреБрдж Silex рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо
project/protected/Providers
рд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕ (рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рдж рдореЗрдВ) рдХреЛ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗ, рдФрд░
project/protected/app/Controllers
ред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ:
рд╕реАрдбреА / рдкрде / рд╕реЗ / рдкрд░рд┐рдпреЛрдЬрдирд╛ / рд╕рдВрд░рдХреНрд╖рд┐рдд
curl -s http://getcomposer.org/installer | php
php рдХрдВрдкреЛрдЬрд░
Silex рдкреНрд░рджрд╛рддрд╛рдУрдВ
рдкреНрд░рджрд╛рддрд╛ Silex рдХреА рдПрдХ рдорд╣рд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рддреГрддреАрдп-рдкрдХреНрд╖ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рджрд╛рддрд╛ рд╣реИрдВ: рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреНрд░реЛрд▓рд░рдкреНрд░реЛрд╡рд╛рдЗрдбрд░рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд┐рд╕рдкреНрд░реЛрд╡рд╛рдЗрдбрд░рдЗрдВрдЯрд░рдлреЗрд╕ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП)ред
рдЖрджрд░реНрд╢
рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдФрд░ рдореЙрдбрд▓ рд▓реЛрдбрд░ рд▓рд┐рдЦреЗрдВред
<?php
рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм рд╣реИред рдЕрдм рд╣рдо
project/protected/app/Models
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ
$app['models']->load('Class', 'Method', $data)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдПрдХ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
$app['models']->load('Class', 'Method', $data)
рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛
$data
рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред ред рдпрд╣ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдкреНрд░рджрд╛рддрд╛ рдХреЛ Silex рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдирд┐рдпрдВрддреНрд░рдХ
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рд╕реАрдзреЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдирд┐рдпрдВрддреНрд░рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдСрдЯреЛрд▓реЙрдбред рддреЛ рдЕрдм рд╣рдо рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдорд╛рдирдХ Silex
mount
рд╡рд┐рдзрд┐ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ index.php рдлрд╝рд╛рдЗрд▓, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдореЙрдбрд▓ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред
index.php <?php
рдирд┐рдпрдВрддреНрд░рдХ <?php
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХреЛрдб рдкрд░ред
connect()
рд╡рд┐рдзрд┐ Silex рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЕрдВрджрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдЙрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд╣рдордиреЗ index.php (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ URL рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░реВрдЯ - /) рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЕрдЧрд▓рд╛,
$index
рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣
$app
рд╣рд┐рд╕реНрд╕реЗ рдХреА рддрд░рд╣ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рд░реВрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрджрд░реНрд╢ <?php
рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ? MVC рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдХрд┐рд╕реА рднреА рд╕рдордп рдорд╛рдирдХ Silex рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ, рджреГрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЯреНрд╡рд┐рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ Silex рдХреЗ рд╕рд╛рде 100% рдПрдХреАрдХрд░рдг рд╣реИред
рдкреВрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ
рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред