Catégorie : CakePHP

[CakePHP 3] Mise en place du scaffold / CRUD avec Bake

CakePHP dispose d’un puissant outil Shell permettant la génération de code.

La version 3.x ne proposant plus de scaffold / CRUD en déclarant une simple variable, je vous propose dans ce court tutoriel de l’implémenter de manière automatique.

 

Pour cela, ouvrez un terminal sur votre machine, puis rendez-vous dans le dossier /bin. Dans mes exemples, j’utiliserai des commandes Unix, mais adaptez-les si vous êtes sous Windows.

cd /Users/Pauline/MesProjets/cakephp3/bin

En faisant un « ls », vous constaterez la présence d’un fichier cake.

Executons-le de la façon suivante :

./cake

Cette commande vous donnera toutes les actions exécutables à l’aide de cette console.

 

Nous allons maintenant nous attarder sur « bake« .

Cette commande permet de générer automatiquement du code par rapport à la structure de votre base de données.

Ainsi, nous allons générer le code permettant de lister, consulter, ajouter, éditer et supprimer les éléments d’une table, comme c’était le cas avec CakePHP 2 (du CRUD en somme).

 

D’ailleurs, pourquoi utiliser cake bake plutôt que le plugin CRUD ? Simplement, la génération de code permet de modifier à volonté la structure générée et de gagner du temps dans le développement de l’application.

 

Imaginons donc que notre base de données comporte une table « users ».

Nous allons générer le controller de base de cette table.

Pour cela, nous allons entrer :

./cake bake controller users

Rechargez votre page et constatez que vous avez maintenant un CRUD en état de marche.

 

Si vous êtes sur Mac et avez un placard d’erreur de type :

No such file or directory in /Users/Pauline/MesProjets/cake3/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php on line 47

Vous devez ajouter le socket UNIX dans votre fichier app.php au niveau de la connexion à la base de données, comme ceci :

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

 

Sur le même modèle, vous pouvez générer :

  • behavior
  • controller
  • component
  • form
  • middleware
  • model
  • template

Et j’en passe…

D’ailleurs, vous pouvez générer automatiquement tous les fichiers relatifs à à notre table « users » avec la commande :

./cake bake all users

 

Vous l’aurez compris, c’est un outil est extrêmement puissant avec lequel vous allez gagner un temps considérable.

A vos terminaux !

Psst, la doc de bake est ici.