рд╕реБрд╕реНрдд, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдкреЗрдмрд▓ рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╕рд┐рдореНрдлрдиреА 2 рдореЗрдВ

рджреВрд╕рд░реА рд╕рд┐рдореНрдлрдиреА рдореЗрдВ, рд╣рдо рдбреЙрдХреНрдЯреНрд░рд┐рди рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдмрдВрдбрд▓, StofDoctrineExtensionsBundle , рдирд┐рдореНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ: рд╕реБрд╕реНрдд , рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдпреЛрдЧреНрдп , рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдкреЗрдмрд▓ , рд▓реЙрдЧрдЧреЗрдмрд▓ рдФрд░ рдЯреНрд░реА ред

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

рд╕реНрдерд╛рдкрдирд╛


рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рдореНрдлрдиреА рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрдЯреНрд░рд┐рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдЙрд╕рдХреЗ рдмрдВрдбрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдбрд┐рдкреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

[gedmo-doctrine-extensions] git=git://github.com/l3pp4rd/DoctrineExtensions.git [DoctrineExtensionsBundle] git=git://github.com/stof/StofDoctrineExtensionsBundle.git target=/bundles/Stof/DoctrineExtensionsBundle 

рд╕реНрдерд╛рдкрдирд╛

 $ bin/vendors install 

рдпрджрд┐ рдЖрдк рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЕрдм app / autoload.php рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

 $loader->registerNamespaces(array( // ... 'Stof' => __DIR__.'/../vendor/bundles', 'Gedmo' => __DIR__.'/../vendor/gedmo-doctrine-extensions/lib', // ... )); 

рдРрдк / AppKernel.php рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рднреА рдЬреЛрдбрд╝реЗрдВ:

 public function registerBundles() { return array( // ... new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(), // ... ); } 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдкреНрд▓рд┐рдХреЗрд╢рди / config / config.yml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, рдЙрдкрд▓рдмреНрдз StofDoctrineExtension рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА) рдореЗрдВ рд▓рд┐рдЦреЗрдВ :

 #... doctrine: orm: auto_mapping: true stof_doctrine_extensions: orm: default: sluggable: true timestampable: true #... 

рдЕрдм, рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:

 $ php app/console cache:clear 

рдХреЗ рдЙрдкрдпреЛрдЧ


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ Slugable рдФрд░ Timestampable рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

 <?php namespace Entity; use Gedmo\Mapping\Annotation as Gedmo; //  Gedmo use Doctrine\ORM\Mapping as ORM; /** * @ORM\Table(name="article") * @ORM\Entity */ class Article { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(length=64) */ private $title; /** * @Gedmo\Slug(fields={"title"}) * @ORM\Column(length=128, unique=true) */ private $slug; /** * @var datetime $created * * @Gedmo\Timestampable(on="create") * @ORM\Column(type="date") */ private $created; /** * @var datetime $updated * * @ORM\Column(type="datetime") * @Gedmo\Timestampable(on="update") */ private $updated; 

рд╕рд┐рджреНрдзрд╛рдВрдд рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╛рдХреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:

 $ app/console doctrine:generate:entities 

рдЖрдк Sluggable , Translatable , Timestampable , Loggable рдФрд░ Tree рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ


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

рдЗрдиреНрд╣реЗрдВ рднреА рджреЗрдЦреЗрдВ: рд╕рдВрдпреБрдХреНрдд рд░реВрдк рдФрд░ рдЪреВрдХ ред

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


All Articles