30/01/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 27/01/2009 et le 30/01/2009:
- The Plugin Console Application
- Via Chris Hartjes : John Anderson bosse sur "un serveur de plugin", à utiliser en ligne de commande via un Shell CakePHP. A tester.
- iCalendar event generator
- Un helper pour générer des fichiers .ics.
- Api Generator
- Depuis quelques temps, il y avait un petit problème avec la génération automatique de la doc de l'API de CakePHP. Il semblerait que Gwoo et Mark Story se soit penchés sur la questions, et le résultat est un plugin utilisable sur tous projets
- Did You Guys Know About The CakePHP DebugKit? | PseudoCoder.com
- Oui, je suis fan de Matt Curry, et j'assume. Le gars Matt nous présente le debugkit et c'est aussi instructif que marrant (d'ailleurs, quand il a écrit que le debugkit n'était pas open source, j'ai cru que c'était une blague… je suis bon public quand même).
Plus sur ma page delicious CakePHP.
26/01/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 22/01/2009 et le 26/01/2009:
- Intégrer FCKeditor dans CakePHP
- Pierre-Emmanuel Fringant nous montre comment intégrer l'éditeur WYSIWYG FCKEditor dans son application CakePHP. A titre personnel, je préfère nettement TinyMCE, mais comme toujours, le tutoriel vaut le détour, de par sa grande clarté et son didactisme.
- CSV Datasource for reading your CSV files
- Un datasource implémentant la lecture des fichiers au format CSV, par Siegfried Hirsch.
- CakePHP Digest #6 | PseudoCoder.com
- Monsieur Curry, je reste fan de votre CakePHP Digests, même si vous êtes un peu prisonnier de l'actualité (pauvre cette semaine) et si du coup les liens que vous reprenez, je les ai déjà cités. L'édition de cette semaine vaut le détour pour l'explication qu'elle donne du gros bug de sécurité corrigé par la dernière release de CakePHP. Et puis qu'est-ce qu'il est drôle tout de même.
- JQuery in the CakePHP world (part 2 - is client side code all that great?)
- Suite de l'introduction à jQuery dans CakePHP par teknoid. Vérification en ajax de la disponibilité d'un username. Basique, mais bien détaillé.
Plus sur ma page delicious CakePHP.
22/01/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 20/01/2009 et le 22/01/2009:
- Testing CakePHP controllers - Mock Objects edition
- Mark Story présente les Mock Objects via un exemple dans CakePHP. Simple et clair.
- Exporter des données au format Excel (.xls)
- Pierre-Emmanuel Fringant propose un intéressant tutoriel sur l'export de données au format Excel (oui, Excel, pas csv), en utilisant un helper fait maison (apparemment ?), là où moi, je le confesse, dégaine lourdement la plupart du temps la classe Pear Spreadsheet Writer, qui propose beaucoup de fonctionnalités pas toujours très utiles (gestion des enrichissements, gestion à peu près de l'utf-8, gestion des onglets…)
- Quick Tip - Doing Ad-hoc Joins in Model::find()
- Nate Abele descend dans l'arène pour nous proposer une sympathique extension à Model::find() qui permet de faire une recherche sur habtm (cas d'école : les tags). A noter que Rafael Bandeira avait également proposé une élégante contribution déjà relevée ici sur le sujet avec le Linkable Behavior.
- CakePHP and a paradigm shift to a code generation based approach? | Dieter_be's spot on the web
- Dieter Plaetinck revient vers CakePHP après deux ans passés à faire autre chose (mais il ne dit pas quoi). Il trouve que les choses ont bien évolué, mais que bake ne va pas encore assez loin en matière de génération de code automatique. Bon, il n'a pas foncièrement tort, en particulier sur les templates, qui pourraient effectivement généralisés aux modèles et aux contrôleurs, et plus riches pour les vues. Mais de là à hacker le core (blasphème !)… Une curiosité intéressante en tout cas.
Plus sur ma page delicious CakePHP.
19/01/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 18/01/2009 et le 19/01/2009:
- Das erste DIEVOLUTION Buch zum Thema CakePHP
- Un nouveau livre sur CakePHP (ouais !!!!), en allemand (bouh). Bon, maintenant, à quand la France ?
- Security Notice for 1.2.0.7962, Using AuthComponent without SecurityComponent -
- Ahhhhh, un trou de sécurité dans CakePHP ! Pas d'explication détaillée, mais une consigne : mettre à jour vers la dernière version stable (la 1.2.1, quoi)
- JQuery in the CakePHP world (part 1)
- Une petite intro de Teknoid à l'utilisation de jQuery avec CakePHP.
- Displaying form errors as a list in CakePHP
- Un post de Miles Johnson à propos de l'affichage groupé des erreurs lors de la validation d'un formulaire (et non, comme en standard, champ par champ).
- (Bad) Tip: Checking HTTP Auth against your normal users table -
- Un post sur le Google Group anglophone qui montre qu'on peut facilement résoudre le problème de protection d'un fil RSS avec CakePHP. En effet, les lecteurs RSS gèrent la plupart du temps l'authentification HTTP, alors que nos applis (CakePHP ou autres) utilisent une authentification "session based". Unifier les deux est un peu lourdingue (j'ai été confronté au problème cette semaine sous eZ Publish) et Martin Westin gère ça très bien en quelques lignes.
Plus sur ma page delicious CakePHP.
17/01/2009 |
Publié dans
cakephp
Première mise à jour pour la version 1.2 de CakePHP, la version 1.2.1 est disponible depuis quelques heures. Toutes les informations sont ici.
16/01/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 14/01/2009 et le 16/01/2009:
- Paginating long lists in the CakePHP Console
- Une toute cool petite astuce de Mark Story pour paginer de longs résultats dans un script exécuté en ligne de commande, basée sur l'utilisation de la fonction array_chunk de PHP.
- Book Review: CakePHP Application Development
- Longtemps après tout le monde, Matt Curry (dont je suis fan, oui) s'attaque au bouquin de Packt Publishing, "CakePHP Application Development", qu'il vient de recevoir. Post cité ici pour, une fois de plus, signaler l'humour dont son auteur fait preuve, Matt n'apportant rien de nouveau sur le fond.
- Performance comparision CakePHP and Symfony
- Belle promesse de polémique : Yusuke Ando a porté Askeet, l'application-demo de Symfony, sur CakePHP (versions 1.1, 1.2 RC3 et 1.2 final) et fait des benchmarks… D'emblée, en premier commentaire, teknoid audite le portage, qui semble assez peu fin (en particulier, laisse CakePHP en mode debug doit au minimum diviser les performances par deux… était-ce le cas sur la version Symfony ?).
- PhpBB3 Api Bridge
- Wilson Sheldon a réalisé une version à jour du bridge entre CakePHP et phpBB, qui gère la version 3 de cet outil de gestion de forum fort répandu. Je ne savais même pas qu'il y avait une version pour la 2, alors… Ça peut servir. A noter qu'on tombe là, une fois n'est pas coutume, sur un vrai souci dû à l'absence de namespace en PHP ou au côté générique des noms de classe du noyau de CakePHP, puisqu'il y a conflit entre les classes Cache des deux outils. Wilson s'en titre en renommant celle de phpBB…
Plus sur ma page delicious CakePHP.
16/01/2009 |
Publié dans
ailleurs, cakephp
Pour désengorger mon NetVibes qui plie un peu sous le poids des widgets, je me suis fait un Yahoo Pipe avec les blogs français à propos de CakePHP que je suis régulièrement (et qui sont mis à jour régulièrement, aussi) :
Voilà, le résultat est à cette adresse, au cas où vous passeriez dans le coin et où ça vous serait utile à quelque chose. Si d’autre part vous avez des suggestions de blogs à ajouter, n’hésitez pas à laisser un commentaire.
13/01/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 08/01/2009 et le 13/01/2009:
- CakePHP Digest #5
- Annoncé par son auteur, Matt Curry, comme "médiocre" sur Twitter un peu avant sa publication, ce nouveau Digest m'a pourtant bien fait rire… Peut-être un poil moins informatif que les précédents, mais c'est aussi parce qu'il ne s'est pas passé grand chose, ce qui n'est pas de sa faute du tout, d'autant plus qu'il était occupé à accueillir un nouveau rejeton dans sa famille (félicitations, Matt).
- Getting Auth and Admin Routing to play nicely together
- On n'a jamais assez d'exemples de mise en place d'une interface d'administration avec utilisation du composant Auth. En voici un, simple et de bon goût, par teknoid.
- Book review: Practical CakePHP Projects
- Le troisième bouquin en anglais paru sur CakePHP n'a que moyennement convaincu Daniel Hofstetter, qui en fait une rapide critique.
- Did you know? String::insert is nice for translation!
- m3nt0r, très en forme, a trouvé une bonne utilisation de la méthode String::insert pour gérer les traductions sans se soucier de l'ordre. Qu'il en soit remercié.
Plus sur ma page delicious CakePHP.
13/01/2009 |
Publié dans
cakephp
Encore une astuce bien cachée dans la documentation de CakePHP… Tellement bien cachée d’ailleurs qu’elle n’y apparaît même pas !
Bref, vous avez une relation belongsTo entre deux modèles, par exemple, vous avez un Concert qui belongsTo une salle de concert (a Venue, in English).
Dans la table venues, il y a un champ city, et je voudrais les prochains concerts dans une ville précise.
Si je me contente d’une relation belongsTo standard, CakePHP va générer lors d’un Model::find(’all’), avec juste une petite condition sur la date des concerts, une requête de ce type :
SELECT `Concert`.*, `Venue`.* FROM `concerts` AS `Concert` LEFT JOIN `venues` AS `Venue` ON (`Concert`.`venue_id` = `Venue`.`id` AND `Venue`.`city` LIKE ‘brest’) WHERE `date` >= ‘2009-01-13′ LIMIT 20
Le problème, c’est que cette requête va retourner toutes les salles de concert de Brest, y compris celle qui n’accueillent pas de concert dans les prochains jours, par le fait de la jointure externe gauche. Voici comment faire :
$conditions= array(’Venue.city LIKE’ => $city);
$this->Concert->unbindModel(array(’belongsTo’ => array(’Venue’)));
$this->Concert->bindModel(array(’belongsTo’ => array(’Venue’ => array(’type’ => ‘inner’))));
$conditions = array(’date >=’ => date(’Y-m-d’));
$order = array (’Concert.date’ => ‘asc’);
$limit = 20;
$params = compact(’contain’, ‘fields’, ‘limit’, ‘conditions’);
$concerts = $this->Concert->find(’all’, $params);
Les lignes intéressantes étant les lignes 2 et 3 : on commence par “défaire” la relation belongsTo définies entre les deux tables au niveau du modèle, avant de la reconstruire avec la clef “type” à “Inner”.
Si vous paginez vos résultats, n’oubliez pas de mettre le deuxième paramètre de Model::unbindModel() et Model::bindModel() à false, sans cela cette nouvelle relation ne s’appliquerait qu’à la requête suivant ces instructions avant d’être remise à zéro pour celle d’après ; or la pagination implique deux requêtes, une qui compte, l’autre qui récupère les résultats.
11/01/2009 |
Publié dans
cakephp
Qu’on s’arrache les cheveux (le peu qui reste, en ce qui me concerne) sur un truc bizarre une fois, pourquoi pas… mais qu’on récidive, sur la même bourde, alors là, non, c’est qu’il est temps de les noter quelque part, histoire de les faire rentrer une bonne fois pour toute.
Lire la suite de ce post »