рд╕рд┐рдореНрдлрдиреА 2 рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмреНрд▓реЙрдЧ

рд╣рд╛рдп% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо%!
рд╕рд┐рдореНрдлрдиреА рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп PHP рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдиреЗ рдХрд╛рдлреА рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рдИ рд╣реИрдВ ред рд▓реЗрдХрд┐рди рд░реВрд╕реА рднрд╛рд╖реА рд╕рдореБрджрд╛рдп рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдХрдо рдЖрдо рд╣реИред рдпрд╛ рддреЛ рдпрд╣ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдпрд╛ рд░реВрд╕реА-рднрд╛рд╖рд╛ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ symfony2 рдкрд░ рдПрдХ рд╕рд░рд▓ рдмреНрд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЪрд░рдг 0. рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

5.3.2 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд░реНрд╡рд░ (рдЙрджрд╛ред рдЕрдкрд╛рдЪреЗ)ред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ред рд╣рдо MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЧрд┐рдЯ (рд╡реИрдХрд▓реНрдкрд┐рдХ)ред
рдЪрд░рдг 1. рд╕реНрдерд╛рдкрдирд╛ред

рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдпрд╛ рдЧрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╣рдо рджреВрд╕рд░реЗ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдмрд╛рдж рдХрдИ рдмрдВрдбрд▓ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рдЬрдбрд╝ рдореЗрдВ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
git clone https://github.com/symfony/symfony-standard.git symfony
cd symfony
php bin/vendors.php

рд╣рдо рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ http: //localhost/symfony/web/config.php ред рдпрд╣рд╛рдВ рд╕рд┐рдореНрдлрдиреА рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдЧрд╛ред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ php.ini рдореЗрдВ date.timezone рдирд┐рд░реНрджреЗрд╢ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡рд╣рд╛рдВ, рдкреГрд╖реНрда рдХреЗ рдиреАрдЪреЗ, рдЖрдкрдХреЗ php.ini рдХрд╛ рд╕реНрдерд╛рди рд▓рд┐рдЦрд╛ рд╣реБрдЖ рд╣реИред
рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЖрдкрдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЙрд╕реА рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВ, http: //localhost/symfony/web/app_dev.php/_configurator/ ред
рдпрд╣рд╛рдБ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ CSRF рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд┐рдореНрдлрдиреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдпрд╣ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди / рдкреИрд░рд╛рдореАрдЯрд░реНрд╕.рдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред
рдпрд╣рд╛рдВ рдпрд╣ рдмрдВрдбрд▓реЛрдВ рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо AcmeDemoBundle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд рдмрдВрдбрд▓ред рдореИрдВ рдмрдВрдбрд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЧрдпрд╛, рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ symfony2 рдореЗрдВ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЙрдирд╕реЗ рдИрдВрдЯреЛрдВ рдХреА рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдореЗрдВ рдПрдХ рдФрд░ рдмрдВрдбрд▓ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - FOSUserBundleред рдпрд╣ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рд▓реЙрдЧрд┐рди, рдкрдВрдЬреАрдХрд░рдг, рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреБрд╖реНрдЯрд┐ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛:
git submodule add -f git://github.com/FriendsOfSymfony/UserBundle.git vendor/bundles/FOS/UserBundle

рдПрдкреНрд▓рд┐рдХреЗрд╢рди / autoload.php рдореЗрдВ рдПрдХ рдирдпрд╛ рдирд╛рдорд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗрдВ:
$loader->registerNamespaces(array(<br> 'FOS' => __DIR__. '/../vendor/bundles' ,<br> // your other namespaces <br>); <br>

рдПрдкреНрд▓рд┐рдХреЗрд╢рди / AppKernel.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдирдпрд╛ рдмрдВрдбрд▓ рдЬреЛрдбрд╝реЗрдВ:
public function registerBundles()<br>{<br> return array(<br> // ... <br> new FOS\UserBundle\FOSUserBundle(),<br> // ... <br> );<br>} <br>

рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди / рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВред рд╣рдо рдкреНрд░рджрд╛рддрд╛рдУрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
security:<br> providers:<br> fos_userbundle:<br> id: fos_user.user_manager <br>

рд╣рдо рд╕рдВрджреЗрд╢ рдирд┐рд░реНрдорд╛рдг рдкреГрд╖реНрда рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рдо рдкрд╣реБрдБрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдФрд░ access_control рдХреЛ рднреА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
firewalls:<br> main:<br> pattern: .*<br> form_login:<br> provider: fos_userbundle<br> login_path: /login<br> use_forward: false<br> check_path: /login_check<br> failure_path: null<br> logout: true<br> anonymous: true<br>access_control:<br> - { path: /post/new, role: ROLE_USER } <br> - { path: /.*, roles: IS_AUTHENTICATED_ANONYMOUSLY} <br>

рдПрдкреНрд▓рд┐рдХреЗрд╢рди / config / config.yml рдореЗрдВ, auto_mapping рд╣рдЯрд╛рдПрдВ: рд╕рддреНрдп рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:
doctrine:<br> orm:<br> mappings:<br> FOSUserBundle: ~<br> AcmeDemoBundle: ~<br> # your other bundles<br>

рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<br>fos_user:<br> db_driver: orm<br> firewall_name: main<br> class:<br> model:<br> user: Acme\DemoBundle\Entity\User <br>

рд▓рд╛рдЗрди рдлреАрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯрд░ рдореЗрдВ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, FOSUserBundle рддрд╛рд░ред
framework:<br> translator: { fallback: en } <br>

рдЪрд░рдг 2. рдореЙрдбрд▓ рдмрдирд╛рдирд╛ред

рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ src / Acme / DemoBundle / Entity рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдПрдБред рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВред
post.php:
<?php<br><br> namespace Acme\DemoBundle\Entity;<br><br>use Doctrine\ORM\Mapping as ORM;<br><br> /** <br> * <br> * @ORM\Entity <br> */ <br> class Post<br>{<br> /** <br> * @var integer $id <br> * <br> * @ORM\Id <br> * @ORM\Column(name="id", type="integer") <br> * @ORM\GeneratedValue(strategy="AUTO") <br> */ <br> private $id;<br><br> /** <br> * @ORM\ManyToOne(targetEntity="User", inversedBy="posts") <br> * @ORM\JoinColumn(name="user_id", referencedColumnName="id") <br> */ <br> public $user;<br><br> /** <br> * @var string $title <br> * <br> * @ORM\Column(name="title", type="string", length=255) <br> */ <br> public $title;<br><br> /** <br> * @var text $description <br> * <br> * @ORM\Column(name="description", type="text") <br> */ <br> public $description;<br>} <br>

рдЪрд░ рд╕реЗ рдкрд╣рд▓реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ - рдПрдиреЛрдЯреЗрд╢рдиред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдЪрдорддреНрдХрд╛рд░ "рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?"ред
user.php:
<?php<br> namespace Acme\DemoBundle\Entity;<br>use FOS\UserBundle\Entity\User as BaseUser;<br>use Doctrine\ORM\Mapping as ORM;<br><br> /** <br> * @ORM\Entity <br> * @ORM\Table(name="fos_user") <br> */ <br> class User extends BaseUser<br>{<br> /** <br> * @ORM\Id <br> * @ORM\Column(type="integer") <br> * @ORM\generatedValue(strategy="AUTO") <br> */ <br> protected $id;<br> <br> /** <br> * @ORM\OneToMany(targetEntity="Post", mappedBy="fos_user") <br> */ <br> public $posts;<br><br> public function __construct()<br> {<br> parent::__construct();<br> // your own logic <br> }<br>} <br>

рд╣рдореЗрдВ FOS \ UserBundle \ Entity \ User рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рджреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдФрд░ рдлрд╝реАрд▓реНрдб рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдИрдореЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдореЙрдбрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЯреЗрдмрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
php app/console doctrine:schema:create

рдЪрд░рдг 3. рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдирд╛ред

Src / Acme / DemoBundle / рдирд┐рдпрдВрддреНрд░рдХ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ PostController.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
<?php<br> namespace Acme\DemoBundle\Controller;<br><br>use Symfony\Bundle\FrameworkBundle\Controller\Controller;<br>use Acme\DemoBundle\Entity\Post;<br>use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;<br><br> class PostController extends Controller<br>{<br> /** <br> * @Template() <br> */ <br> public function indexAction()<br> {<br> $em = $ this -> get ( 'doctrine' )->getEntityManager();<br> $posts = $em->getRepository( 'AcmeDemoBundle:Post' )->findAll();<br> return array( 'posts' => $posts);<br> }<br> <br> /** <br> * @Template() <br> */ <br> public function newAction()<br> {<br> $post = new Post();<br> // <br> $post->user = $ this -> get ( 'security.context' )->getToken()->getUser();<br> // , , <br> $form = $ this -> get ( 'form.factory' )<br> ->createBuilder( 'form' , $post)<br> ->add( 'title' , 'text' )<br> ->add( 'description' , 'textarea' )<br> ->getForm();<br> $request = $ this -> get ( 'request' );<br> if ($request->getMethod() == 'POST' ) {<br> $form->bindRequest($request);<br> if ($form->isValid()) {<br> $em = $ this -> get ( 'doctrine' )->getEntityManager();<br> $em->persist($post);<br> $em->flush();<br> return $ this ->redirect($ this ->generateUrl( 'post_index' ));<br> }<br> }<br> return array( 'form' => $form->createView());<br> }<br>} <br>

рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ () рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЙрд╕рдХреЗ рдмрд┐рдирд╛
return array('posts' => $posts);

рд╣рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
return $this->render('AcmeDemoBundle:Post:index.html.twig', array('posts' => $posts));

рдЪрд░рдг 4. рдЯреЗрдореНрдкрд▓реЗрдЯред

Src / Acme / DemoBundle / Resources / views / Post рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдПрдВред
index.html.twig:
{% extends 'AcmeDemoBundle::layout.html.twig' %}<br><br>{% block content %}<br><br>{% if is_granted('ROLE_USER') %}<br> < div >< a href ="{{ path(" post_new ") }}" > New Post </ a ></ div > <br>{% endif %}<br><br>{% for post in posts %}<br> < h2 > {{ post.title}} </ h2 > <br> < p > {{ post.description }} </ p > <br> < div > by {{ post.user.username }} </ div > <br>{% else %}<br> .<br>{% endfor %}<br><br>{% endblock %} <br>

new.html.twig:
{% extends 'AcmeDemoBundle::layout.html.twig' %}<br><br>{% block content %}<br> < h1 > New Post </ h1 > <br> <br> < form action ="{{ path(" post_new ") }}" method ="post" > <br> {{ form_widget(form) }}<br><br> < input type ="submit" class ="symfony-button-grey" value ="Create" /> <br> </ form > <br>{% endblock %} <br>

рдЯреНрд╡рд┐рдЧ рдЯреЗрдВрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдкрд╣рд▓реЗ рд╣реА рд╣реЛрдмреЗ рдкрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рднреА рд╣реИрдВред
рдЪрд░рдг 5. рд░реВрдЯред

рдРрдк / рдХреЙрдиреНрдлрд┐рдЧ / рд░рд╛рдЙрдЯрд┐рдВрдЧ рдореЗрдВред рд╣рдо рдЕрдкрдиреЗ рд░реВрдЯ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ UserBundle рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рддреЗ рд╣реИрдВ
post_index:<br> pattern: /post<br> defaults: { _controller: AcmeDemoBundle:Post:index }<br><br>post_new:<br> pattern: /post/new<br> defaults: { _controller: AcmeDemoBundle:Post:new }<br><br>fos_user_security:<br> resource: "@FOSUserBundle/Resources/config/routing/security.xml"<br><br>fos_user_user:<br> resource: "@FOSUserBundle/Resources/config/routing/user.xml"<br> prefix: /user <br><br> * This source code was highlighted with Source Code Highlighter .

рдЕрдм рд╣рдорд╛рд░рд╛ рдмреНрд▓реЙрдЧ http: //localhost/symfony/web/app_dev.php/post рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рдФрд░ рдЬрдм рдЖрдк http: //localhost/symfony/web/app/dev/php/post/nost рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рддреЛ рдЖрдкрдХреЛ рдкреГрд╖реНрда рдкрд░ рдкреБрдирдГ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ред
рдЕрдВрддрднрд╛рд╖рдг

рдореИрдВ рдПрдХ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдФрд░ рдореМрд▓рд┐рдХрддрд╛ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛, рдмрд╕ рдорджрдж рдФрд░ рдЖрд▓реЛрдЪрдирд╛ рдордд рдЫреЛрдбрд╝реЛред
рдХрд┐рд╕рдХреЗ рдкрд╛рд╕ рд╕рд╡рд╛рд▓ рд╣реЛрдВрдЧреЗ - рдкреВрдЫрд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣рдмреНрд░ рдкрд░ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЬреИрдмрд░ рдХреЙрдиреНрдлреНрд░реЗрдВрд╕ symfony@conference.jabber.ru рд╣реИ


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


All Articles