Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel de CakePHP

Comprendre la notion d'entité

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Une entité est un objet dont votre application aura besoin. Il s'agit, par exemple, d'une entité utilisateur ou d'une entité article.
09:36

Transcription

Dans le chapitre précédent, nous avons vu comment interroger la base de données, et saisir des nouveaux éléments. Mais là, nous n'avons pas utilisé la notion d'entité, qui permet de réaliser de nombreuses choses facilement et simplement sans avoir à redéfinir les fonctions de création, par exemple. Les objets Table représentent et fournissent un accès à une collection d'objets. Les entités représentent des lignes individuelles ou des objets de domaine dans votre application. Les entités contiennent des propriétés et des méthodes persistantes pour manipuler et accéder aux données qu'ils contiennent. Pour créer une entité, il faut aller dans le dossier src/Model/Entity. Donc là, nous allons créer article.php, donc le fichier article.php, qui est une entity. Voilà. Donc ici, nous sommes sur le namespace App\Model\Entity, puisque nous sommes dans le dossier entity. « Article » étant entity, donc qui est l'objet de l'ORM de Cake. Donc il est possible, dans le controller, de créer une entité directement. Pour cela, je vais dans article controller, je vais aller dans l'action add, par exemple. Je vais commenter ce que nous avions fait au préalable. Et je vais commenter cela. Je vais sur New, new/. Et ici il nous dit, App\Controller\Article n'est pas trouvé. C'est normal puisque, ici, je n'ai pas mis le use. Donc ici, c'est : use App\Model\Entity\Article. Donc là, maintenant, il est d'accord. Je passe bien dans le die, et je n'ai plus d'erreur. Donc là, il a bien su créer un nouvel article. Ensuite, je vais créer une vue, une vue new, donc dans src template. Ici, je créé un nouveau dossier, que je nomme « Article », comme le nom du controller, et ensuite, je créé un fichier que je nomme new.ctp. Ici maintenant, je devrais bien avoir new. Sauf que pour cela, il faut que j'enlève le die qui se trouve ici. Donc là le template, ce n'est pas new mais add, j'ai juste à le renommer. Voilà, j'enregistre. Et je revalide, et j'ai bien le new. Donc ici, en fait, j'essaie de créer une action qui puisse me créer un objet article, et qui puisse l'insérer. Donc pour l'instant, on a déjà crée l'entité, l'instance de l'entité. Ensuite, dans cette entité, on va vouloir stocker des informations. Donc pour cela, ici, parce que je créé une entité, je peux lui donner un tableau en paramètre. On va éviter de lui donner un id, puisque c'est un auto increment. On va lui donner un titre. On va l'appeler « Mon article ». Ensuite, on va lui donner une date de création. Ici, on met un \ devant date time, c'est pour qu'il sache que c'est un objet de base de PHP. Donc voilà, nous venons de créer notre article. Là, nous venons de créer une instance d'article, mais il est possible de faire différemment. Vous pouvez aussi faire comme cela, en utilisant, en fait, le table registry. Donc ici, il faut bien faire un use tout en haut, table registry. Là, j'enlève aussi l'id, puisque c'est un auto increment. Et ici, donc là, vous avez deux méthodes possibles. Vous créez ici une instance d'article vide, et ici vous créez une instance d'article avec deux paramètres. Il est préconisé la première des façons. Parce que la deuxième, elle utilise, pas une entité, mais elle utilise une table. Et du coup, ça utilise la méthode new entity de l'objet Table. Donc là, ça, je supprime. Et ici, si je fais un debug de « Article », à l'écran. Donc ici, j'ai une erreur sur use. Je l'enlève. Donc ici, j'ai bien du coup l'instance de mon entité « Article », donc j'ai bien son titre, et sa date de création, qui est bien initialisée à maintenant. Ici, il est important de noter le new. Là, vous savez que c'est une nouvelle entité qui n'est pas encore sauvegardée. Ici, vous savez aussi que certains champs sont dirty, donc dirty, ça signifie que le champ n'est pas encore sauvegardé, donc title et created ne sont pas encore sauvegardés. Pour ajouter des valeurs à votre objet Article, vous pouvez aussi utiliser les méthodes get et set. Donc, par exemple ici, je peux dire de créer juste un article. Et ensuite, vous pouvez dire article - set title, par exemple, et « Mon article ». Donc ici, si je debug « Article », j'ai quand même bien mon title qui est renseigné. Et la méthode set peut aussi prendre un tableau en paramètre. Ici, vous pouvez lui mettre un tableau. Voilà. Et ici, si j'ajoute le slug, par exemple. Voilà. Donc là, je devrais avoir les deux paramètres renseignés, et j'ai bien les deux paramètres renseignés. Et ensuite, dans l'entité « Article », vous pouvez, en fait, redéfinir les get. Donc si je me mets dans l'entité « Article » ici, et que je dis que pour toutes les fonctions, lorsque j'appellerai get title, je vais retourner en fait mon titre mais avec une majuscule sur tous les premiers mots de ce titre, donc avec la fonction ucwords. get title Ici, j'ai bien « Mon article ». Vous pouvez aussi redéfinir les setter, donc ça, c'est intéressant. Par exemple, dans notre exemple, nous avons le slug. Donc là, il est possible de faire cela. Donc ensuite, il faut ici que j'ajoute le inflector, voilà. Donc ici, le inflector, ça permet en fait de prendre le title, et de mettre tous les mots en minuscules. Et là, je fais ça lorsque je « set » le titre. Du coup, si j'essaie, ici si j'essaie de debugger « Article », et que j'enlève le slug que j'ai ici, je ne set plus que le title. Ici pourtant, j'ai bien mon slug. Le slug, ça permet en fait au lieu d'avoir une URL de type /show/1, vous pouvez avoir, par exemple ici, « Mon titre », ce qui est quand même beaucoup plus joli que /1. Slug vient d'un utilitaire qui s'appelle inflector. Il dispose de plein d'autres outils intéressants. Il est aussi possible de créer des champs virtuels. Donc comme par exemple, celui-là. Donc par exemple ici, si je le concatène end title avec author, donc si ça par exemple, cette fonction-là, je l'appelais, ici j'aurais donc la possibilité de faire $article - title with author, et ça me donnerait le titre concaténé avec l'auteur. Voilà, donc là, nous avons vu comment manipuler les entités, et, dans le prochain chapitre, nous verrons comment sauvegarder les données de cette entité.

L'essentiel de CakePHP

Développez des applications web évolutives avec CakePHP, du simple blog au site e-commerce à fort trafic. Installez et configurez le framework, maîtrisez le routing, etc.

3h39 (45 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
CakePHP CakePHP 3
Spécial abonnés
Date de parution :22 nov. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !