Archive for cakephp

L’API de cakePHP en ligne de commande

Ce week-end, ma connexion internet avait quelques difficultés à se maintenir plus de quelques secondes. Du coup, j’étais un peu embêté pour consulter de manière interactive la doc de l’API (celle-ci).Dans Eclipse PDT, un bon vieux F2 vous affichera un tooltip généré à partir du commentaire format PHPdoc à propos de la méthode sur laquelle se trouve votre pointeur… quand Eclipse arrive à s’y retrouver, c’est-à-dire pas si souvent. En fouillant dans le répertoire “console” de cake, je suis tombé sur le fichier “api.php”, présent (d’après SVN) depuis le 23/05/2007 dans Cake et dont j’ignorais jusqu’à présent l’utilité. En fait, il permet d’accéder à la documentation de l’API en ligne de commande. Pour cela :

  • se positionner dans le répertoire cake/console
  • taper : “./cake api model -m find” (par exemple) et admirer.


Voici le mode d’emploi :

Usage: cake api [type] model [-m method]

On peut se contenter de préciser le nom de la classe, on obtient alors une liste des méthodes dont on veut accéder à la documentation. On peut mieux cibler soit en précisant directement la méthode soit en restreignant la recherche à un type de classes (behavior, model, view…). Si l’on prend la peine de documenter ses propres classes, ça peut aussi aider.

Copie d’écran du terminal pour la commande ./cake api model -m find

A l’instar de bake, il peut être commode de définir cette commande en tant qu’external tool (ci-dessous une configuration sommaire).

Configuration Eclipse

(désolé pour la présentation foireuse de ce post, il y a des choses qui m’échappent encore dans wordpress…)

Commentaires

Une semaine dans le monde de cakePHP

Je viens de tomber sur un blog consacré à cakePHP que je ne connaissais pas - et pour cause, il est tout récent -, tenu par Christian Winther, aka Jippi, un Danois.

Ce garçon s’est mis dans la tête de compiler chaque semaine les évènements survenus dans le monde magique de CakePHP : nouvelle version (cette semaine, ça tombe bien), principales questions sur le GoogleGroup, etc. C’est que ça se passe. D’où on déduit que les bonnes résolutions de nouvelle année existent aussi au Danemark.

Commentaires

CakePHP 1.2 beta !

Après la version dev, la version alpha, la version prebeta, voici enfin la version beta de la tant attendue deuxième mouture de CakePHP !

A télécharger par ici.

Résolutions 2008 :

  • mettre à jour ce blog régulièrement
  • concurremment, finir la v2 de POPnews.

Commentaires

Un layout automatique pour l’interface d’administration

Donc, dans cakePHP, on a un layout par défaut (par exemple, layout.ctp). Quand on a une interface d’administration, on a bien souvent besoin d’avoir un layout particulier pour cette partie (par exemple, admin_layout.ctp).

Quand on active l’admin routing (ie. que toutes les url du type /admin/moncontroleur/monaction appellent en fait la méthode admin_monaction du contrôleur moncontroleur), il ne resterait plus qu’à ajouter à toutes ces méthodes en admin_monaction une ligne de code du genre :

$this->layout=’admin_layout’;

Fastidieux…

Petite astuce, on ajoute dans la méthode beforeRender() de notre app_controller.php (celui situé dans /app) le bout de code suivant :

if (isset($this->params[CAKE_ADMIN])) {
$this->layout=’admin_layout’;
}

Où CAKE_ADMIN vaut le préfixe utilisé pour notre interface d’administration (par exemple, admin).
Et le tour est joué pour toute notre interface d’administration.

Commentaires

Des regex sur la route…

CakePHP 1.1 supporte également les expressions régulières pour ce qui est des “routes”, ouf. Ce qui fait qu’on peut s’amuser à générer des url à peu près comme on le ferait à coup de mod_rewrite dans .htaccess.
Là, en l’occurrence, j’en ai besoin pour reprendre les url des news de POPnews (par exemple). Donc voilà ce que je mets dans mon fichier config/routes.php :

$Route->connect(’/news/([0-9]+)/(.*)/?’, array(’controller’ => ‘news’, ‘action’ => ‘view’));

Je “capture” (avec les parenthèses) mon identifiant numérique ([0-9]+) et mon titre (.*), mais je ne m’en sers pas car CakePHP récupère l’identifiant tout seul comme un grand et le passe à la méthode view de mon contrôleur. Chouette. Initialement, je me disais qu’il fallait que je le fasse à la main par le biais du tableau passé en deuxième paramètre à connect. Heureusement, parce que la doc n’est pas super claire sur le sujet (je trouve).

Commentaires

Project-Id-Version: WordPress 2.2.1 Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2004-12-21 02:45:29.728614 PO-Revision-Date: 2007-07-27 09:15+0100 Last-Translator: Amaury BALMER Language-Team: French (France) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rosetta-Version: 0.1 X-Poedit-Country: FRANCE X-Poedit-SourceCharset: utf-8 X-Poedit-KeywordsList: _e;_c;__ X-Poedit-Basepath: . Plural-Forms: nplurals=2; plural=n>1 X-Poedit-Language: Français X-Poedit-SearchPath-0: D:\Documents and Settings\Amaury\Bureau\wordpress-2.2.1\wordpress Project-Id-Version: WordPress 2.2.1 Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2004-12-21 02:45:29.728614 PO-Revision-Date: 2007-07-27 09:15+0100 Last-Translator: Amaury BALMER Language-Team: French (France) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rosetta-Version: 0.1 X-Poedit-Country: FRANCE X-Poedit-SourceCharset: utf-8 X-Poedit-KeywordsList: _e;_c;__ X-Poedit-Basepath: . Plural-Forms: nplurals=2; plural=n>1 X-Poedit-Language: Français X-Poedit-SearchPath-0: D:\Documents and Settings\Amaury\Bureau\wordpress-2.2.1\wordpress Next entries »