: 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 +
Après poodle et Heartbleed accueillez Drown

Après poodle et Heartbleed accueillez Drown

Drown la nouvelle casse généralisé de SSLv2 Voir +
Sélection d'anime du printemps 2016

Sélection d'anime du printemps 2016

Petite sélection personnelle et non exhaustive des animes du printemps 2016 Voir +

Dernieres Quotes DTC

(Par Manaphy)

Alors, outre la vérification traditionnelle du petit maillot pour l'hydratation, ce conseiller mériterait de revoir son orthographe et devrait dès maintenant apprendre qu'un contrat ne prend effet que sous signature, manuscrite ou électronique.

Mais c'était bien tenté.

Corporal_Queen : Ok. J'aimerais comprendre pourquoi le proxy de la fac me laisse aller sur 4chan mais pas accéder à des corrigés de commentaires ._.

TheShine : te toucher la nouille tu pourras, aller pomper des corrigés pour ton dossier tu oublieras \o/

#19796 - Voir les commentaires

(A propos de)

Rubent : Bonjour je voudrais souscrire un nouveau contrat chez vous

Conseiller EDF : Bien sûr , à fin de réaliser une estimation au plus juste j'aurais besoin de quelques renseignements.

Conseiller EDF : Combien de personnes vivent dans le logement et de quels équipements dispose t-il ?

Rubent : Alors nous sommes deux , le chauffage est électrique , il y a des plaques de cuissons à induction un lave linge, un four, un micro onde, un pc et télévision ect.

Conseiller EDF : D'après mes estimations la consommation mensuelle s'élèverait à un montant de 150 € par mois, cela vous convient ?

Rubent : Euh .. disons que oui si je fait mijoter un boeuf bourguignon 15h par jour , chauffage à fond et télé allumée en lavant le linge de mes voisins ça doit être ça oui...

Conseiller EDF : Parfait, je vous transmets donc tout les documents par mail, le contrat prendra effet des aujourd'hui .

Conseiller EDF : Bonne fin de journée et au revoir.

* Chat terminé

Rubent : Mais....

#19797 - Voir les commentaires

(Par P45M)

Je pense surtout que l'informaticien ne connaît pas 4chan.. Les informaticiens de collège/lycée sont bien souvent des buses en informatique paradoxalement ^^"