30/12/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 23/12/2008 et le 30/12/2008:
- RowObjectBehavior Row Data Gateway implementation
- Un des reproches qu'on fait souvent à CakePHP est que la classe Model travaille essentiellement avec des tableaux, et non avec des objets. C'est un choix de conception, vous diront les développeurs du noyau. Plutôt que de râler, Anton aka Freenity propose sur la Bakery une implémentation du pattern Row Data Gateway, sous la forme d'un comportement.
- cakealot
- Un nouveau blog sur CakePHP, par un Allemand nommé Kjell. C'est en anglais.
- CakePHP Digest Volume #4
- Quatrième édition du CakePHP digest avec un Matt Curry très en forme à la plume. L'attention est portée sur la sortie de la version 1.2 tant attendue, mais il y aussi l'annonce en exclusivité de la date de sortie de la version 1.3, et une mention d'un nouvel épisode du podcast consacré à CakePHP ("The Show") que je ne pense jamais à écouter.
- .8 Reasons to hate CakePHP :: PseudoCoder.com
- A.J. Brown a posté sur son blog un article assez critique sur CakePHP. Matt Curry ne lui donne pas tort à tous les coups, mais démonte la plupart de ses arguments avec un certain humour… Rigolo.
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.
23/12/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 18/12/2008 et le 23/12/2008:
- @TheKeyboard Online Store
- Un peu tard pour commander au Père Noël un t-shirt "You cannot escape the Framework Apocalypse" ? En tout cas l'idée est marrante.
- Revision Behavior - Revision control made easy (Articles) | The Bakery, Everything CakePHP
- Un comportement permettant de gérer le versioning, sur la bakery.
- Testing CakePHP Controllers the hard way
- Mark Story nous présente comment tester des contrôleurs en mettant les mains dans le cambouis.
- Gérer un retour vers la page précédente : Controller::referer()
- Pierre Martin nous explique comment faire un bon usage de la méthode Controller::referer().
Plus sur ma page delicious CakePHP.
19/12/2008 |
Publié dans
cakephp
Bon, on le sentait venir depuis quelques temps, on espérait la version définitive, mais c’est finalement une sage version “Release Candidate 4″ qui est disponible depuis cette nuit. On se rapproche toutefois… Plus de 300 corrections et plus de test. L’annonce est ici et la liste des modificiations là.
17/12/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 11/12/2008 et le 17/12/2008:
- Eviter les requestAction dans le layout
- Pierre-Emmanuel Fringant revient avec un très didactique tutoriel qui explique comment remplacer ces lourds et vieux requestAction dans le layout par l’approche “Fat Models, skinny Controllers” chère à nos amis anglo-saxons.
- How to build a “dashboard” for your application in CakePHP « nuts and bolts of cakephp
- Dans le même style que Pierre-Emmanuel mais un peu moins complet, un bon exemple d’application de l’approche “Fat models, skinny controllers” par teknoid pour réaliser un tableau de bord sans passer par la case requestAction (et sans toucher 20 000 francs).
- CakePHP Digest Volume #3
- Matt Curry reprend les revues de synthèse CakePHP là où Christian Winther les avait laissées (au numéro 3). C’est intéressant et teinté d’humour, on espère qu’il n’arrêtera pas à la numéro 6.
- Unit Testing : CakeFest Argentina
- Après avoir consciencieusement blogué en direct de Buenos Aires pendant toute la durée de la manifestation, Mark Story est le premier (à ma connaissance) des intervenants à mettre en ligne sa présentation. Qu’il soit remercié. Et imité ! C’est un beau PDF de 106 slides, qui fut présenté en deux sessions, et qui cause des tests unitaires.
Plus sur ma page delicious CakePHP.
10/12/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 29/11/2008 et le 10/12/2008:
- Voiles et Voiliers
- Un portail et site communautaire réalisé sous CakePHP par un membre de la communauté française de CakePHP dans le cadre de son travail. Pas une usine à gaz, une usine à voile ;-). Comme quoi ça existe, les sites sous CakePHP(bis).
- Accueil - Forum INSA Entreprises 2008
- Un site réalisé sous CakePHP par Pierre Martin. Comme quoi ça existe, les sites sous CakePHP.
- List of CakePHP related articles, best practices and advice from the experts behind CakePHP Cake Development Corporation
- Cake DC (ou Cake Development Corporation), c'est l'entité commerciale composée de certains développeurs du noyau de CakePHP. Ils lancent leur blog à l'occasion de CakeFest, avec une couverture sommaire mais en direct des conférences. En attendant, je l'espère, mieux et plus, car certains sujets semblent fort intéressants.
- Runtime Config in CakePHP apps
- Neil Crookes expose sa méthode pour distinguer automatiquement environnements de production ou de développement, et configurer son application en conséquence.
Plus sur ma page delicious CakePHP.
24/11/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 21/11/2008 et le 24/11/2008:
- NamedScope for CakePHP
- Joel Moss importe la notion de “NamedScope” en provenance de RoR. Les NamedScopes, ce sont des conditions prédéfinies qu’on peut réutiliser ensuite à loisir dans ses Model::find(), voire enrichir. Fort utile. Encore un truc à essayer.
- Lazy Loader Behavior. What you need, When you need, The way you want
- Quelques jours après le LinkableBehavior, Rafael Bandeira revient avec un nouveau behavior, qui permet des charger a posteriori des lignes liées à un modèle. Un truc que je pratique depuis quelques temps sur l’avoir consolidé en un behavior, c’est donc bienvenu pour moi.
- How to keep your database under version control? - Giga Promoters Blog
- Un petit tutoriel sur l’outil proposé par CakePHP pour gérer les modifications d’un schéma SQL au cours d’un développement. Bien pratique.
- Affichez vos messages flash CakePhp dans d’élégantes alertes à la Growl | Jay Salvat, le Blog
- Les messages flash à la mode Growl, comme sur Mac : trop facile avec jQuery et Jay Salvat.
- Translating plural and singular forms in CakePHP
- Un article qui traite des traductions des pluriels, plus lié à la syntaxe des fichiers .po quà CakePHP en tant que tel, mais ça peut servir tout de même.
Plus sur ma page delicious consacrée à CakePHP.
17/11/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 14/11/2008 et le 17/11/2008:
- Linkable Behavior. Taking it easy in your DB
- Rafael Bandeira se rebelle contre les lourdeurs du Containable Behavior et propose son Linkable Behavior, censé être plus performant, tout en suivant une syntaxe similaire. A tester.
- reCAPTCHA Component & Helper for CakePHP (Articles)
- Un couple composant/helper pour mettre en place un CAPTCHA, ce n'est pas nouveau. Là il s'agit d'une solution s'appuyant sur reCAPTCHA, qui permet au passage de ne pas résoudre des CAPTCHA gratuitement, mais pour aider à numériser des livres.
- How to create an XML-RPC server with CakePHP (Articles) | The Bakery, Everything CakePHP
- Filippo Toso nous explique comment mettre en place un serveur XML-RPC avec CakePHP. C'est simple en fait. Merci Filippo.
- Using bindModel to get to deep relations
- Il y a matière à un bon tutorial sur les manipulations de relations pour obtenir des jointures SQL sur mesure, par exemple en se basant sur des cas concret. Mais personne ne l'a à ma connaissance encore fait. Mark Story apporte sa pierre à l'édifice avec ce bon exemple.
Plus sur ma page delicious consacr�©e � CakePHP.
13/11/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 06/11/2008 et le 13/11/2008:
- Case Insensitive Routes In CakePHP 1.2RC3 :: PseudoCoder.com
- Des routes insensibles à la casse avec Matt. Un work in progress en attendant (dans la doc officielle ?) un point complet sur la gestion des expressions régulières dans les routes…
- Validating Image Uploads in CakePHP - JonnyReeves.co.uk
- Du code intéressant pour valider un upload d'image.
- Promet CakePHP Source
- Un blog sur CakePHP, en anglais, par Rachel.
- Increo on Ideas » Reducing Memory Use in a CakePHP Application
- Quelques conseils pour éviter qu'un site sous CakePHP consomme trop de RAM sur un serveur.
- LDAP Data Source now with full CRUD ! « TBlog
- Sur l'air du "ça peut toujours servir", Gonzalo a perfectionné le datasource LDAP proposé par Euphrate sur la Bakery… A tester…
Plus sur ma page delicious consacr�©e � CakePHP.
06/11/2008 |
Publié dans
cakephp
Quelques bonnes adresses CakePHP vues entre le 23/10/2008 et le 05/11/2008:
- Make your CakePHP forms a lot more secure
- (calme en ce moment, pas vrai ?) L'indispensable Teknoid nous pond un petit tutorial qui explique comment sécuriser simplement un formulaire contre les vilains hackers et dans la foulée comment leur faire savoir ce qu'on pense de leur comportement (via la création de messages d'erreur personnalisés).
- Gerhard Sletten » Implementing ping with phpxmlrpc in CakePHP
- http://sourceforge.net/projects/phpxmlrpc/
- Editing multiple records with saveAll()
- Teknoid use habilement de Set::combine() pour mettre au bon format un tableau de données, permettant ainsi d'utiliser saveAll.
- cakephp's debug_kit at master — GitHub
- Yeah, un plugin de débuggage pour CakePHP ! Par Mark Story ! Que reste-t-il à Symfony ?
Plus sur ma page delicious consacr�©e � CakePHP.