Symfony2 рдЕрдиреБрднрд╛рдЧ рджреНрд╡рд╛рд░рд╛ рдЖрд╡реЗрджрди

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


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

рдпрд╣ рд▓реЗрдЦ рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ "рд╕рд┐рдореНрдлрдиреА 2 рдХрд░реНрдиреЗрд▓" рдХреНрдпрд╛ рд╣реИред

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

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╡рд░рдг




рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп

1. рд╕рднреА рдЕрдиреБрд░реЛрдз рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ (рдлреНрд░рдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░) рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
2. рдСрдЯреЛрд▓реЙрдб рдХрдХреНрд╖рд╛рдПрдВ (рдСрдЯреЛрд▓реЙрдб) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
3. рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХрд░реНрдиреЗрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
4. рдЧрд┐рд░реА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
1. рдмрдВрдбрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реИред
2. рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
1. рдПрдХ рдХрдВрдЯреЗрдирд░ рдореБрдЦреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
2. рдкреНрд░рддреНрдпреЗрдХ рдмрдВрдбрд▓ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
3. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред
4. рдХрдВрдЯреЗрдирд░ рд╕рдВрдХрд▓рд┐рдд рд╣реИред
1. рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред
2. рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
3. рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реАрдб-рдУрдирд▓реА рдореЛрдб (рдлреНрд░реЛрдЬрди) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
3. рдмрдВрдбрд▓реЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


FrontController


рдЬреИрд╕реЗ рдХрд┐ рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдорд╛рдирдХ Symfony2 рд╡рд┐рддрд░рдг рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред

рдпреЗ рд╕рднреА рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ:


рдХрд░реНрдиреЗрд▓ (рдХрд░реНрдиреЗрд▓)


рдХрд░реНрдиреЗрд▓ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдХрд░реНрдиреЗрд▓рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдирд╛ рд╣реИред рдХреЛрд░ рджреЛ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ: рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ (рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЪрдордХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╛рдЙрд▓рд░ рд╕реЗ ) рдФрд░ рдмрдВрдбрд▓ рд╕рд┐рд╕реНрдЯрдоред рдмрдВрдбрд▓ Symfony 1.x рд╕реЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдмрдВрдбрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХрд░реНрдиреЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдорд╛рдирдХ рд╕рд╛рд░ рдХрд░реНрдиреЗрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
// init bundles $this->initializeBundles(); // init container $this->initializeContainer(); foreach ($this->getBundles() as $bundle) { $bundle->setContainer($this->container); $bundle->boot(); } 


рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ


рдЗрд╕ рдЪрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░-рд╕реЗ-рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ 4 рдЙрдк-рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
* рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ "рдкрд╛рд╕" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рдпрд╣ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░рдкрд╛рд╕ рдиреЗ рдЗрд╕рдХрд╛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ред

рдХрдВрдЯреЗрдирд░ рдмрдВрдбрд▓реЛрдВ рдХрд╛ рд╕рдВрд╢реЛрдзрди


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

рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╛рд╕


рд╕рдВрдХрд▓рди рдХреЗ рдЪрд░рдг рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдЕрдкрдиреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд░рддрд╛ рд╣реИред рдкрд╛рд╕ рдХрдВрдкрд╛рдЗрд▓рд░рдкрд╛рд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдФрд░ 6 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИ (рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдХреНрд░рдо рдореЗрдВ): рдорд░реНрдЬ рдХрд░реЗрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдУрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди, рд░реАрдореВрд╡рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ, рд░рд┐рдореВрд╡ рдХрд░рдирд╛, рдирд┐рдХрд╛рд▓рдирд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ - рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред

рдмрдВрдбрд▓реЛрдВ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░рдкрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЯреИрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдорд╛рдирдХ 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 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдФрд░ рдЕрдореВрд░реНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд░реНрдЧ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:

рдЙрджрд╛рд╣рд░рдг рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ ( рдПрдкреНрд▓рд┐рдХреЗрд╢рди / 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 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЗрдЦ рдкрд╛рдардХреЛрдВ рдХреЛ рд░реБрдЪрд┐ рджреЗрдВрдЧреЗ, рддреЛ рдпрд╣ рд╕рдм рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЗрдВрдЯрд░реНрдирд╢рд┐рдк рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдВрдбрд▓реЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, рд╣рдмреЗрд░реА рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрджред рдореБрдЭреЗ рд▓реЗрдЦрди рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдмрд╛рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рд╕реЗ рдЦреБрдж рдХреЛ рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░ рд╕реАрдзреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛: рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ; рдХреНрдпрд╛ рдЬреЛрд░ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпрд╛ рдХрдо; рд╢рд╛рдпрдж рдФрд░ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдЙрди рд▓реЛрдЧреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдпрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ, рдЖрджрд┐ред

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


All Articles