рдПрдХ рдЧреБрдгреА рдЬрд╛рджреВрдЧрд░ рдФрд░ рдЙрд╕рдХреЗ рд╕реБрдВрджрд░ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЗ рдореБрдВрд╣ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рдХрдИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдпрд╣ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ? рдЕрдВрджрд░ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ?

рдпрд╣реА рдмрд╛рдд рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░рд▓реЗрдЦрди, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛ (
рдФрд░ рд╕рд┐рдореНрдлрдиреА 2 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИ ), рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рднреА "рдЬрд╛рджреВ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдкреВрд░реЗ рд╕рд╛рд░ рдХреЛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд▓реЗрдЦ рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ "рд╕рд┐рдореНрдлрдиреА 2 рдХрд░реНрдиреЗрд▓" рдХреНрдпрд╛ рд╣реИред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрдбрд╝реЗ рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреА рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдкрд░реЗрдЦрд╛ рдФрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рддреБрд░рдВрдд рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╡рд░рдг
рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп1. рд╕рднреА рдЕрдиреБрд░реЛрдз рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ (рдлреНрд░рдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░) рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
2. рдСрдЯреЛрд▓реЙрдб рдХрдХреНрд╖рд╛рдПрдВ (рдСрдЯреЛрд▓реЙрдб) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
3. рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХрд░реНрдиреЗрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
4. рдЧрд┐рд░реА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
1. рдмрдВрдбрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реИред
2. рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
1. рдПрдХ рдХрдВрдЯреЗрдирд░ рдореБрдЦреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
2. рдкреНрд░рддреНрдпреЗрдХ рдмрдВрдбрд▓ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
3. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред
4. рдХрдВрдЯреЗрдирд░ рд╕рдВрдХрд▓рд┐рдд рд╣реИред
1. рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред
2. рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
3. рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реАрдб-рдУрдирд▓реА рдореЛрдб (рдлреНрд░реЛрдЬрди) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
3. рдмрдВрдбрд▓реЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
FrontController
рдЬреИрд╕реЗ рдХрд┐ рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг
рдорд╛рдирдХ Symfony2 рд╡рд┐рддрд░рдг рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХрдВрд╕реЛрд▓ - рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡реЗрджрди рддрдХ рдкрд╣реБрдВрдЪред
- web / app.php - рд╡реЗрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪред
- web / app_dev.php - рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рд╡реЗрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡реЗрджрди рддрдХ рдкрд╣реБрдВрдЪред
рдпреЗ рд╕рднреА рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ:
- рдСрдЯреЛрд▓реЙрдб рдХреЛ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
- рдХрднреА-рдХрднреА рдХреНрд▓рд╛рд╕ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдПрдВ 1 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВ);
- рдЧрд┐рд░реА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ;
рдХрд░реНрдиреЗрд▓ (рдХрд░реНрдиреЗрд▓)
рдХрд░реНрдиреЗрд▓ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ
рдХрд░реНрдиреЗрд▓рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдирд╛ рд╣реИред рдХреЛрд░ рджреЛ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ: рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ (рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЪрдордХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдлрд╛рдЙрд▓рд░ рд╕реЗ ) рдФрд░ рдмрдВрдбрд▓ рд╕рд┐рд╕реНрдЯрдоред рдмрдВрдбрд▓ Symfony 1.x рд╕реЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рдЖрдк
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдмрдВрдбрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ
рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХрд░реНрдиреЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдорд╛рдирдХ рд╕рд╛рд░
рдХрд░реНрдиреЗрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
- (рек.рез) рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рдмрдВрдбрд▓реНрд╕ - рдмрдВрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ :: registerBundles , рдорд╛рдирдХ рд╡рд┐рддрд░рдг рд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ);
- (4.2) initializeContainer - DI рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рддрд╛ рд╣реИ;
- (4.3) рдкреНрд░рддреНрдпреЗрдХ рдмрдВрдбрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ
рдЗрд╕ рдЪрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░-рд╕реЗ-рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ 4 рдЙрдк-рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
* рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ "рдкрд╛рд╕" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рдпрд╣ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░рдкрд╛рд╕ рдиреЗ рдЗрд╕рдХрд╛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛редрдХрдВрдЯреЗрдирд░ рдмрдВрдбрд▓реЛрдВ рдХрд╛ рд╕рдВрд╢реЛрдзрди
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдкреНрд░рддреНрдпреЗрдХ рдмрдВрдбрд▓ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИред рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрд░реАрдХрд╛
рд╕рдВрдХрд▓рдХ рдкрд╛рд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛
рд╣реИрдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╛рд╕
рд╕рдВрдХрд▓рди рдХреЗ рдЪрд░рдг рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдЕрдкрдиреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд░рддрд╛ рд╣реИред рдкрд╛рд╕
рдХрдВрдкрд╛рдЗрд▓рд░рдкрд╛рд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдФрд░ 6 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИ (рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдХреНрд░рдо рдореЗрдВ):
рдорд░реНрдЬ рдХрд░реЗрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдУрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди, рд░реАрдореВрд╡рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ, рд░рд┐рдореВрд╡ рдХрд░рдирд╛, рдирд┐рдХрд╛рд▓рдирд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ -
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
- рдкрд╣рд▓реЗ * / рдХреЗ рдмрд╛рдж * рдХрд╕реНрдЯрдо "рдкрд╛рд╕" рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл "рд╣реБрдХ" рд╣реИрдВ рдФрд░ рдорд╛рдирдХ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛);
- рдорд░реНрдЬ - рдХрдВрдЯреЗрдирд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ
- рдЕрдиреБрдХреВрд▓рди - рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: ResolveInterfaceInjectorsPass ( рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрдВрдЬреЗрдХреНрд╢рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ ), CheckCircularReferencesPass (рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ)
- рдирд┐рд╖реНрдХрд╛рд╕рди - рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RemoveUnusedDefinitionsPass (рдЕрдкреНрд░рдпреБрдХреНрдд рдирд┐рдЬреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ)
рдмрдВрдбрд▓реЛрдВ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░рдкрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЯреИрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдорд╛рдирдХ TwigBundle рд╕реЗ рдЙрджрд╛рд╣рд░рдг:
$definition = $container->getDefinition('twig'); $calls = $definition->getMethodCalls(); $definition->setMethodCalls(array()); foreach ($container->findTaggedServiceIds('twig.extension') as $id => $attributes) { $definition->addMethodCall('addExtension', array(new Reference($id))); } $definition->setMethodCalls(array_merge($definition->getMethodCalls(), $calls));
рдХрдВрдЯреЗрдирд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди
рдХрдВрдЯреЗрдирд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдХреЗрдВрджреНрд░реАрдп рддрддреНрд╡ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЗрд╕рдореЗрдВ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ; рддрджрдиреБрд╕рд╛рд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕реЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП,
рдХрдВрдЯреЗрдирд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВ (рдЬреЛ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдПрдХ рд╡рд┐рд╢реЗрд╖ "рдорд░реНрдЬ" рдкрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди
ExtensionInterface рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдФрд░ рдЕрдореВрд░реНрдд
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд░реНрдЧ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
- рд╕реЗрд╡рд╛рдУрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ (рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдХ xml рдлрд╝рд╛рдЗрд▓) рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ;
- рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдирд╛;
- рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ (рд╕рд╛рдордиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреИрд╢)
рдЙрджрд╛рд╣рд░рдг рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ (
рдПрдкреНрд▓рд┐рдХреЗрд╢рди / config / config.yml ):
# Twig Configuration twig: debug: %kernel.debug% strict_variables: %kernel.debug%
рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (
ExtensionInterface :: load () ) рдХреЛ
рдЯрд╣рдиреА рдирд╛рдо рджреЗрдирд╛ рд╣реЛрдЧрд╛ (
ExtensionInterface :: getAlias тАЛтАЛ() ) рдЗрд╕реА рдЦрдВрдб рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ред
рдмрдВрдбрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рдо (
DependencyInjection \ рдмрдВрдбрд▓NameExtension ) рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░
рдПрдХреНрд╕рдЯреЗрдВрд╢рди :: build () рд╡рд┐рдзрд┐ рдХреЛрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЛрдб рдХрд░реЗрдЧрд╛ (рдореБрдЦреНрдп рдмрд╛рдд рдореВрд▓ рд╡рд┐рдзрд┐ рдФрд░ рд╡рд╛рд░рд┐рд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛;);
рдмрдВрдбрд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
рдФрд░ рдЕрдВрддрд┐рдо рдЪрд░рдг рдмрдВрдбрд▓реЛрдВ рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрдВрдбрд▓ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореБрдЦреНрдп Symfony2 рдмрдВрдбрд▓ (FrameworkBundle) рдХреНрд▓рд╛рд╕ рдХреИрд╢ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкрд░, рд╕рд┐рдореНрдлрдиреА 2 рдЖрд╡реЗрджрди рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдП рд╣реИрдВ, рдФрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдкрд╛рдардХ рд╢рд╛рдпрдж рдЬрдЯрд┐рд▓ рдФрд░ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рд╛рде Symfony2 рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрдИ рдЕрдиреБрдХреВрд▓рди рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпреБрдХреНрдд рдПрдХ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдХрд░ рдХреИрд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рдпрд╣ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рд╣реИ) рддреЛ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ, рдХрдВрдЯреЗрдирд░ рдХрдВрдкрд╛рдЗрд▓рд░, рдЖрджрд┐ рдХреЗ рдХрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред рдЙрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдХреЛ рд╕рд┐рд░реНрдл рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рддреИрдпрд╛рд░ рдХрдВрдЯреЗрдирд░ рд╡рд╕реНрддреБ рдХреЛ рддреБрд░рдВрдд рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓реЗрдЦрдХ рд╕реЗ
рдпрд╣ рд╕рд┐рдореНрдлрдиреА 2 рдХреЗ рд╡рд┐рд▓реНрд╕ рдореЗрдВ рдкрд╣рд▓рд╛ рдбрд╛рдЗрд╡ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ Symfony2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЗрдЦ рдкрд╛рдардХреЛрдВ рдХреЛ рд░реБрдЪрд┐ рджреЗрдВрдЧреЗ, рддреЛ рдпрд╣ рд╕рдм рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЗрдВрдЯрд░реНрдирд╢рд┐рдк рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдВрдбрд▓реЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, рд╣рдмреЗрд░реА рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрджред рдореБрдЭреЗ рд▓реЗрдЦрди рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдмрд╛рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рд╕реЗ рдЦреБрдж рдХреЛ рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░ рд╕реАрдзреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛: рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ; рдХреНрдпрд╛ рдЬреЛрд░ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпрд╛ рдХрдо; рд╢рд╛рдпрдж рдФрд░ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдЙрди рд▓реЛрдЧреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдпрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ, рдЖрджрд┐ред