Date de publication : 2008 , Date de mise à jour : 15 juin 2009
Par
Chad Kieffer
Guillaume Rossolini (traducteur) (Tutoriels Web)
Notes on Choosing a PHP Framework: A Comparison of CakePHP and the Zend Framework, par Chad Kieffer.
les applications que nous avons construites alors fonctionnent encore.
| CakePHP | Zend Framework | Commentaires | |
|---|---|---|---|
| License | MIT |
BSD |
Chacune de ces licenses est assez flexible. Prenez le temps de considérer comment votre application sera utilisée et distribuée. Il est également important de prendre en considération la compatiilité avec des extensions tierces incluses dans votre application. |
| Compatabilité PHP | 4 et 5 | 5.1.4 et plus | Je suis curieux de connaître les plans du support de PHP 4 pour CakePHP. Je suppose que la focalisation de ZF sur PHP 5 lui donne des avantages de performances. |
| Documentation | Bonne |
Excellente |
La documentation de CakePHP est bonne mais l'API de ZF est plus complète. |
| Communauté | Google groups, IRC (Freenode), articles |
Wiki, listes, Jabber |
Les deux frameworks ont des communautés actives d'utilisateurs. En plus des canaux officiels, il y a des sites communautaires tierces que l'on peut trouver facilement par Google. CakePHP a très bien publicisé son framework, si l'on tient compte de l'absence d'entreprise dont dispose ZF. |
| Tutoriels / exemples | Excellents | Corrects | Les fourneaux de CakePHP sont une grande collection d'applications et de codes d'exemples soumis par des utilisateurs. Les articles d'IBM Developer Works pour CakePHP sont excellents. Les tutoriels ZF que j'ai lus sont bons mais nécessitent une expérience approfondie de MVC. Cependant, les vidéos de débutants ZF sont très utiles. CakePHP propose également des screencasts. |
| MVC | Strict | Optionnel | Ces points sont ceux qui différencient le plus les deux frameworks et ils sont probablement les facteurs les plus importants au moment du choix final. CakePHP a des conventions très strictes de nommage et d'organisation du code, tandis que ZF contraint à l'utilisation de ses conventions uniquement si l'on adopte PVC. |
| Conventions | Strictes | Flexibles | cf. ci-dessus |
| Configuration | Script PHP | Fichiers XML ou INI | Cette différence ne me semble pas être fondamentale. Si vous êtes un amateur d'outils comme ANT, vous pourriez préférer le choix de ZF pour XML. |
| Abstraction de BDD | PHP, PEAR, ADOdb | PHP, PDO |
Je peux me tromper, mais il me semble que PDO a les faveurs de la communauté PHP. |
| Sécurité | Basé sur ACL |
Basé sur ACL |
Les deux frameworks prennent la sécurité très au sérieux et proposent une méthode d'authentification et des autorisations à base d'ACL. Tous deux approchent ACL d'une manière similaire et proposent un haut degré de flexibilité dans la construction des ACL. |
| Manipulation de données | Bon | Excellent | Les deux frameworks proposent d'emblée des mécanismes de validation et de purification des données. ZF propose davantage d' options de validation, mais la validation avec CakePHP est facilement extensible via PCRE. CakePHP fournit un unique mécanisme de validation, alors que ZF propose plusieurs filtres pour les données. |
| Cache | Bon | Excellent | Tous deux proposent un cache des pages à base de fichiers. ZF propose divers backends de cache dont APC, SQLite et, bien entendu, Zend Platform. |
| Sessions | Excellent | Excellent | Tous deux ont une gestion robuste des sessions. |
| Logs / débogage | Bon | Excellent | Tous deux ont une méthode de log des applications. IMHO, La classe Zend_Debug donne l'avantage à ZF dans cette catégorie. |
| Templates | Basé sur PHP | Basé sur PHP | Puisque je viens du design d'interfaces, les templates me sont partiulièrement chers. Si vous avez développé des templates pour WordPress ou Drupal, vous vous sentirez à l'aise avec CakePHP. ZF demande un peu plus de travail pour faire fonctionner les templates (cf. Zend_View et Zend_Layout). Vous pouvez intégrer des méthodes tierces, comme Smarty, dans les deux frameworks. |
| Helpers | Bon | Excellent | Les deux frameworks fournissent des helpers fondamentaux pour gérer AJAX, les formulaires et les conversions temporelles. CakePHP dispose d'un excellent helper absent dans ZF, mais ZF a un plus grand répertoire de helpers. |
| JavaScript / AJAX | Bon | Correct | CakePHP intègre Prototype et script.aculo.us tandis que la version actuelle de ZF ne supporte aucun framework JavaScript spécifique. ZF supporte JSON et la version 1.5 ajoute des fonctionnalités AJAX pour les formulaires. J'aimerais que les deux proposent un support plus large de frameworks JavaScript tiers, en particulier Jquery et YUI. |
| Web Services | Bon | Excellent | Tous deux supportent RESt, XML-RPC ainsi que le parcours de flux XML fondamentaux. ZF supporte aussi certains services Web connus tels qu'OpenID, Reflection, Akismet, Amazon, Audioscrobbler, Delicious, Flickr, Simpy, StrikeIron, Technorati et Yahoo. |
| Localisation | Bon | Excellent | Tous deux proposent la localisation au travers des moyens traditionnels (i18n, l10n). CakePHP est en train d'ajouter et d'améliorer leur support dans la version 1.2 à venir. ZF semble avoir un meilleur support pour la localisation et la traduction. |
| Tests unitaires | Oui | Oui | Les deux frameworks proposent cette fonctionnalité que trop d'entre nous ignorent ;) Il me reste à évaluer le support des tests unitaires. |
CakePHP, Wikipedia
Comparaison de Frameworks
Cook Up Web Sites Fast with CakePHP
Zend Framework, WikipediaCopyright © 2007 Chad Kieffer. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.