: Tuto Par :
Utiliser les extensions Doctrine dans Symfony 2 et 3 via les extensions gedmo

Petit tuto très simple et rapide sur un bundle INDISPENSABLE,

Gedmo est un bundle qui fournie des extensions à Doctrine, ic on va juste effleurer la surface de ce bundle mais c'est déjà assez violent.

 1) On modifie notre fichier Composer :

"stof/doctrine-extensions-bundle": "1.2.x", 

2) On l’active dans le AppKernel :

new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),

3) On rajoute ça dans notre fichier de configuration :

stof_doctrine_extensions:
    default_locale: fr_FR
    orm:
        default:
            sluggable:   true
            timestampable: true

4) On ouvre une Entité dans la quelle on souhaite automatiser certaines actions :

On charge la classe :

use Gedmo\Mapping\Annotation as Gedmo;

Et voila un exemple de ce que l'on peut faire :

Automatiser la date de création et la dernière modification d’une entité :
 

    /**
     * @var \DateTime
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(name="created_at", type="datetime", nullable=false)
     */
    private $createdAt;

    /**
     * @var \DateTime
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(name="updated_at", type="datetime", nullable=false)
     */
    private $updatedAt;

    /**
     * Get createdAt
     *
     * @return \DateTime
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

Vous remarquerez l’absence des Setters c’est normal, comme c’est automatisé par Gedmo ils sont inutiles, voir nuisibles.

Et un exemple pour le Slug

Alors le slug c'est tout simplement une version optimisée pour le référencement de votre article, au lieu d'avoir :
www.monsite.com?article=145
on a :
www.monsite.com/titre-de-article-optimise-sans-maj-ou-accents

/**
* Article
*
* @ORM\Table(name="article")
* @ORM\Entity(repositoryClass="SiteBundle\Repository\ArticleRepository")
* @ORM\HasLifecycleCallbacks
* @Vich\Uploadable
*/
class Article implements ItemInterface{

    /**
     * @Gedmo\Slug(fields={"titre"},separator="-", updatable=true, unique=true)
     * @ORM\Column(length=128)
     */
    private $slug;

Sources :

Github
symfony.com

Avatar de l'utilisateur Nodoka

Nodoka

PedoQueen des intrawebz 2.0, antéchristine de la connerie, j'aime les loli, les vocaloid, l’humour noir (car le blanc est raciste) et les Animés. Promis je te mangerais trollement bien avec amour. Ma devise : "If her age is on the clock, she's old enough for the cock".

Articles Aléatoires

Sélection d'anime de l'hiver 2015/16

Sélection d'anime de l'hiver 2015/16

Petite sélection personnelle et non exaustive des animes de l'hiver 2015/16 et du visionnage... Voir +
Sélection d'anime de l'été 2016

Sélection d'anime de l'été 2016

Sélection personnel des animé de l'été 2016 Voir +
Explication sur le TLS/SSL : Le chiffrement des connexions internet HTTPS

Explication sur le TLS/SSL : Le chiffrement des connexions internet HTTPS

Le comment du pourquoi de l'utilisation de TLS/SSL pour proteger les communications HTTPS Voir +

Dernieres Quotes DTC

Marie: Avez vous essayé de redémarrer votre box ?

Soufiane: plusieurs fois

Marie: Veuillez redémarrer votre box s'il vous plait.

Soufiane: je viens de vous dire que j'ai essayé plusieurs fois et que ça n'a rien donné

Marie: Nous effectuons un contrôle à distance, nous voulons voir ce qu'il se passe.

Soufiane: et comment vous retrouver une fois reconnecté ?

Marie: Rassurez-vous, nous resterons en contact pendant le redémarrage.

Soufiane: ...

Soufiane: prends moi encore une fois pour un con et je te force à dire "slip de bain" sous peine de résiliation

Marie: Nous vous remercions d'avoir utilisé notre service de chat.

* Merci. Au plaisir de vous revoir sur le chat XXXX.

#19958 - Voir les commentaires

Blinght : Rickroll

Pouiii : ?

Blinght : Tetris.

Pouiii : Je comprends rien là !

Blinght : besoin de touuuuaaaaah envie de ?

Pouiii : Rieeeeeen !

Blinght : C’est la danse des canards, qui en sortant de la mare, se secouent le bas des reins et font ?

Pouiii : Coin coin !

Blinght : Ils m’entrainent jusqu’au bouuuut de la nouuuit, leees demons de ?

Pouiii : minouuuuuit !

Blinght : Alexandrie ?

Pouiii : Alexandraaaaa !

Blinght :

Pouiii : Ah, c’est fini ? J’ai gagné quoi ?

Blinght : Au moins une de ces chansons en tête, t'as le choix!

Pouiii :

Pouiii : Si tu savais comme je te déteste !

Blinght : Oui mais pense à moi comme je t’aimeuuuuh !

* Pouiii disconnected

#19955 - Voir les commentaires

<Kiwi> T'es super mignonne :D

<Elise> Tu es sérieux? :x

<Elise> Tu penses que j'suis jolie ? :x

<Kiwi> Mais oui

<Kiwi> j'en suis même complètement dur

<Kiwi> sur*

#14161 - Voir les commentaires

(Par Megalo-Man)

Quand vous n'aurez plus aucune de ces chansons en tête, vous vous sentirez libéréééééés, délivrééééééés.