Versionner un projet avec Git : principes et bases

Le gestionnaire de source est un outil indispensable pour le développement d’applications. Nous commencerons par expliquer son principe, puis aborderons l’utilisation d’un gestionnaire de source très complet, Git, avec CakePHP. Lire la suite

Authentification à double entrée avec CakePHP 1.3

Nous faisons d’une pierre deux coups avec cet article : d’une part nous mettons à jour un ancien article sur l’authentification en proposant une approche plus « propre », d’un point de vue POO, de l’utilisation du composant Auth, et d’autre part la sortie de la version 1.3.0-alpha et son nouveau système de gestion des Routes préfixées nous permet de décrire la mise en place très simple d’un système d’authentification à double entrée (ou plus), du type /admin et /membres. Lire la suite

Un plugin pour faciliter l’envoi d’emails

Ce plugin fournit un composant Mailer qui étend le composant Email du cœur de CakePHP. Ce composant Mailer peut alors être étendu pour définir des mailers propres à l’application dans lesquels des méthodes se chargent de paramétrer les emails. Cela évite de surcharger les contrôleurs avec de nombreuses méthodes dans AppController et permet de facilement envoyer des emails en une ligne de code : $this->UserMailer->sendSignup($user). Lire la suite

Un plugin pour intéragir avec Twitter

Nous avons profité de la demande d’un client, qui souhaitait publier automatiquement un nouveau message sur Twitter après chaque publication d’un article sur son site, pour créer un plugin capable d’intéragir avec le plus connu des services de micro-blogging. Lire la suite

Rendre un plugin traduisible

L’une des conditions préalables à l’adoption par le plus grand nombre d’un plugin CakePHP, c’est la possibilité de pouvoir le traduire dans n’importe quelle langue. Voyons comment préparer un plugin à son internationalisation. Lire la suite

Un plugin de formulaire de contact

Ce plugin fournit un formulaire de contact basique qui vous envoie les informations du contact par email, et les stocke dans la base de données au cas où un problème survienne lors de l’envoi de l’email. Il reprend le principe d’un précédent article de Formation CakePHP. Lire la suite

Le piège du counterCache : créons un behavior !

Dans le tutoriel précédent : Mise en place du counterCache : un piège à éviter, nous avions vu comment mettre en place le counterCache entre deux modèles associés en belongsTo et comment mettre à jour le compteur d’origine, lorsqu’un enregistrement change de parent.

L’astuce consistait à placer notre logique dans les callbacks beforeSave et afterSave du modèle Post, dans lequel est déclarée l’association belongsTo avec le modèle Category. Tout cela fonctionne bien pour un seul modèle, mais si l’application a plusieurs counterCache actifs, il faut dupliquer l’astuce dans tous les modèles, ce qui est peu productif et ne permet pas de réutiliser l’astuce dans d’autres projets.

Nous allons donc créer un Behavior, nommé tout simplement Counter, pour exécuter automatiquement la mise à jour du counterCache lorsque des enregistrements change de parent. Lire la suite

Article dans PHPSolutions n°33

Nous avons le plaisir d’annoncer la publication d’un dossier sur les bases de CakePHP, co-écrit avec Pierre Martin, dans le n°33 du magazine PHPSolutions. Cet article de 8 pages présente le framework en général et récapitule les points forts de CakePHP. Lire la suite

Plugin de moteur de recherche multi-modèles

Nous vous proposons un plugin pour intégrer un moteur de recherche interne multi-modèles à une application CakePHP. Ses caractéristiques sont les suivantes :

  • Utilise les index Full-Text de MySQL.
  • Facile à installer : il suffit de télécharger les fichiers et de créer une seule table, quel que soit le nombre de Modèles à indexer.
  • Non-intrusif : inutile de créer d’index Full-Text sur les tables existantes.
  • Plusieurs mode de recherche : langage naturel, langage naturel avec extension de requête, et recherche booléenne.
Lire la suite

Plugin de tags multi-modèles

Nous vous proposons un plugin permettant d’associer des tags à un ou plusieurs Modèles d’une application CakePHP. Nous avons souhaité que ce plugin ait les caractéristiques suivantes :

  • Facile à installer : il suffit de télécharger le dossier et le placer dans le répertoire {app}/plugins, puis de créer deux tables quel que soit le nombre de Modèles à tagger.
  • Pour pouvoir tagger un Modèle, il suffit d’ajouter un champ de type ‘text’ dans le formulaire d’ajout/édition d’un enregistrement. C’est tout. Nous proposons le choix entre un champ simple ou un champ qui propose des tags existants au fur et à mesure de la saisie.
  • Le plugin inclut un Comportement (Behavior) qui ajoute des méthodes aux Modèles concernés : trouver les tags d’un enregistrement, trouver des enregistrements qui partagent le plus grand nombre de tags, etc.
  • Construire et afficher un nuage de tags, avec un contrôle total de son contenu et de son apparence.
Lire la suite