06/04/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 05/04/2009 et le 06/04/2009:
- Row-level Model Access Control for CakePHP
- C'est l'histoire d'un gars - le fou - qui veut gérer des droits finement, au niveau des lignes d'un modèle ! On croit rêver.
- CakePHP 1.2 GROUP BY with HAVING COUNT(*) HABTM associations (limit the query based on associated data) at anomalous territory
- Un petit tuto sur commetn faire des having count dans CakePHP, ça ne fait jamais de mal (je me souviens avoir bien cherché)
- Authenticating a CakePHP App Against a CakePHP Webservice
- Un tuto intéressant qui explique (des deux points de vue) comment permettre à une application CakePHP de s'authentifier auprès d'une autre application CakePHP fournissant le service web idoine.
- Flex remoting with cakePHP
- Un nouveau plugin mis à jour pour faire du Flex avec CakePHP.
Plus sur ma page delicious CakePHP.
13/02/2009 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 11/02/2009 et le 13/02/2009:
- Pagination des données dans une relation HABTM
- Un nouveau et brillant tutoriel de Pierre-Emmanuel sur la pagination d'une relation habtm en utilisant le nouveau paramètre "joins" (qui m'avait échappé) et le paramètre "type" (qui ne m'avait pas échappé, cf mon post sur la relation belongsTo).
- 0DayCar: phpVideoTutorials: CakePHP 1.2 Invoicr Application (Part 1 & 2)
- Pas eu le temps de regarder, mais ces tutoriels en video sur la création d'une application de facturation avec CakePHP ont l'air prometteur.
- Using ApiGenerator to generate documentation | Mark Story
- Mark Story revient sur son dernier bébé, l'ApiGenerator, qui est maintenant utilisé pour générer la documentation de l'API de CakePHP en lieu et place de Doxygene. Utilisable sur vos projets à condition d'avoir PHP dans une version supérieure à la 5.2.1
- Commentia (Spam Blocker Behavior)
- Un comportement signé Miles Johnson et qui permet de bloquer les spams de commentaires, en s'inspirant visiblement du travail de Jonathan Snook.
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.
24/12/2008 |
Publié dans
cakephp
Bon, donc, j’ai une table “articles”, une table “tags”, une table de liaison entre les deux (”articles_tags”, avec ses rituels champs “article_id” et “tag_id”) et je voudrais, par curiosité malsaine sans doute, savoir quels sont les articles qui ne sont associés à aucun tag (pour leur en associer au moins un, par charité probablement).
En SQL “à la main”, ça donnerait ça :
SELECT * FROM `articles` as `Article` WHERE NOT EXISTS (SELECT * FROM `articles_tags` as `ArticlesTag` WHERE `ArticlesTag `.`article_id`= `Article `.`id`)
Je ne pense pas qu’il soit possible de reproduire exactement cette requête avec les méthodes magiques de CakePHP.
Donc je suis parti sur une version un peu détournée :
SELECT * FROM `articles` as `Article` LEFT JOIN `articles_posts` as `ArticlesTag` ON `ArticlesTag`.`article_id`= `Article `.`id` WHERE `ArticlesTag`.`article_id` IS NULL
Hum.
Retranscrit en CakePHP, dans une méthode de mon modèle Article, ça donne quelque chose comme ça :
$this->bindModel(array(’hasOne’ => array(’ArticlesTag’)));
$conditions = array(’ArticlesTag.artist_id IS NULL’);
$contain = array(’ArticlesTag’); // pas besoin de toutes les autres tables
$fields = array(’Article.id’, ‘Article.title’); // les champs dont on a besoin
$params = compact(’contain’, ‘conditions’, ‘fields’);
debug($this->find(’all’, $params));
Vous avez mieux ? je suis preneur…
Dans la série “jouons avec les habtm”, en un peu plus élaboré, je vous invite également à lire ce post de teknoid.
27/09/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 23/09/2008 et le 27/09/2008:
- CakePHP WhoIs Component
- Un composant qui permet fort simplement d'obtenir les informations fournies par la commande "whois". Utilise le classe phpWhoIs.
- Une ébauche de Merge behavior
- Un behavior qui peut être utile. Il fusionne deux enregistrements en un troisième. A voir : comment se comporte les enregistrements liés dans d'autres tables. A priori : mal. Il y a encore eu peu de boulot.
- Saving extra fields in the join table (for HABTM models) « nuts and bolts of cakephp
- Une autre idée pour gérer des champs supplémentaires dans la table de liaison d'une habtm., tout simplement en créant une liaison hasMany temporaire.
- Tutorial - CakePHP Ajax "Quick Save" with jQuery: CakePHP, jQuery
- Un tutoriel simple et efficace pour insérer un bouton "sauvegarde rapide" sur un formulaire, qui réalise une sauvegarde en ajax et permet de continuer à éditer les champs ensuite. Petit problème à gérer en sus à mon avis : la (non-)validation.
Plus sur ma page delicious consacrée à CakePHP.