Retour d'expérience cakePhp

24 réponses
AuteurMessage

flush |
Modérateur

Photo de flush

Inscrit le : 09/05/2005

# Le 05/10/2006 à 09:41

Bonjour,

Avec mon collègue on vient de tester le framework cakephp qui est presque un clone de "on rails pour ruby" pour php.

Tout d'abord :

- le MVC : C'est bien quand on est à 20 sur un projet, mais quand on est 2 et qu'il faut modifier 3 à 4 fichiers minimum (La vue, le contrôleur, le modèle, et la route) pour faire une nouvelle page ... un peu lourd ...

- Tout marche par héritage : (Les contrôleurs, les modèles) c'est pratique ca évite de réécrire beaucoup de code surtout avec des classes d'abstraction assez bien faite, mais il faudrait une documentation avec des exemples !
En effet leur documentation est complète, mais parfois sans exemple c'est un peu dur de s'y retrouver (surtout au début) ...

- Sinon au niveau apprentissage c'est vraiment rapide, avec des connaissances en php et objets on s'en sort facilement.

- Niveau Benchmark, j'en ai pas fait, mais à mon avis c'est plutôt très lent ...

puisque :
On commence par un .htaccess qui fait une route généraliste vers un fichier php qui va définir le fichier à être appelé via la "route" puis appeller le controlleur puis le modèle et enfin la vue ...
Bref pour chaque requête HTTP, php accède à 6 ou 7 fichiers minimum !!

- Plus rapide ?
Tout le monde me dit qu'avec ruby on rails on coupe le temps de développement en 2, et bien surement aussi avec cakephp ?
Humm sur des gros gros projets peut-être, mais surement pas sur de petits projets !

- Et AjaxHelper ?
Cakephp intègre une classe AjaxHelper qui gère pleins de chose directement en s'appuyant sur Prototype et script aculos us. (C'est bien mais quand on connait bien javascript et qu'il faut écrire du code php aus normes cakePhp pour avoir du javascript ... il faudrait une doc bien plus complète ! Et cela oblige à faire ce que propose cake car si on veux faire son propre truc on peux oublier cakePhp ou alors se casser la tête dans son système pour faire une classe dérivé qui prendra beaucoup plus de temps !)

En conclusion je dirais que cakePhp manque d'exemples dans sa documentation officielle (Le cakephp wiki je sais, mais pas très complet ...)

Et que pour une utilisation sur un site à fort trafic je doute vraiment ... Le gain de temps sur le développement peux être justifié dans le cas d'une réalisation de site internet avec beaucoup de formulaire (où la c'est bien géré pour la vérification, c'est un jeu d'enfant tellement que ca va vite ).

@+ Jean-Philippe

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/10/2006 à 11:12

Interessant !
Merci

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/10/2006 à 11:38

C'est la que je me rends compte que ne pas avoir fait d'etudes d'infos, ca manque

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 05/10/2006 à 11:43

krucial a dit :
C'est la que je me rends compte que ne pas avoir fait d'etudes d'infos, ca manque

Pareil
Je suis admiratif

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

PepsiCola | Jean-Jacques
En attente

 

Inscrit le : 09/05/2005

# Le 05/10/2006 à 12:25

krucial a dit :
C'est la que je me rends compte que ne pas avoir fait d'etudes d'infos, ca manque


Je pensais être le seul à rien avoir compris !

Et pourtant j'ai fait des études d'informatique mais c'était il y a un certain temps

abonné au gaz

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 05/10/2006 à 12:34

Vous utilisez tous des framework pour développer vos sites ?

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

Geo 113 | Geoffrey
Modérateur

Photo de Geo 113

Inscrit le : 04/05/2005

# Le 05/10/2006 à 12:42

nop

CosmixOuvrir dans une nouvelle fenetre
Rendez imprévisible l'Economie; Mentez aux sondages

flush | Jean-Philippe
Modérateur

Photo de flush

Inscrit le : 09/05/2005

# Le 05/10/2006 à 12:47

lol désolé de paraître pour un extra-terrestre !

Perso sur la plus part de mes sites je n'utilise pas vraiment de framework complet du genre zend ou cakephp, mais plutôt un ensemble de classe normalisé et regroupé.
(Je donne un début d'explication sur un site en construction ici : http://www.lephp.com/apprendre-php/faire-son-propr...Ouvrir dans une nouvelle fenetre )

Mais pour n'importe quel site il est primordiale je dirais d'avoir au minimum 2 classes voir 3 :

- une classe d'abstration de base de donnée. (Si un jours vousvoulez migrer de mysql à postgresql ou oracle c'est plus facile... ou si vous voulez un jour avoir un log de toutes les requêtes sql avec un bench sur chaqu'une d'entre elles ...)

- une class Template : même si vous gérer pas un véritable template avec des fichiers à ouvrir pour remplacer le titre et companie ... au moins quelque chose qui permet d'avoir que 1 seul include et dire :
<?php
require_once('./init.php');
$page = new Template();
$page->newPage('mon titre', 'ma description ...');
$page->warning('Vous devez être connecté pour modifier ce fichier !');
$page->newSection('Ma 1ère rubrique ...');
//...
$page->newSection('Ma sous rubrique 1...');
//...
$page->endSection();

$page->newSection('Ma sous rubrique 1...');
//...
$page->endSection();
$page->endSection();

$page->endPage();
?>

- une classe d'authentification pour les sites avec espace membre : si un jours vous voulez passez de md5 à sha512 ou alors rajouter un grain de sel etc... il faut mieux avoir un objet pour tout centraliser !

@+ Jean-Philippe

Julgates | Julien
Administrateur

Photo de Julgates

Inscrit le : 09/03/2005

# Le 05/10/2006 à 13:02

Moi je fais jamais d'objet, juste de jolies fonctions regroupées dans un fichier que j'inclue

Shopping Time NetworkOuvrir dans une nouvelle fenetre - Founder / CTO

bhamp0 | Benjamin
Membre

Photo de bhamp0

Inscrit le : 09/05/2005

# Le 05/10/2006 à 13:19

Moi je me suis récemment développé mon propre framework PHP5 Objet inspiré MVC : c'est un gain de temps non négligeable La séparation de la vérification des données, de leur traitement et de l'affichage est un gros plus qui permet de savoir très vite d'où vient le problème dans votre application ...
Mon premier site basé dessus va bientôt sortir (site sans véritable prétention), je vous le montrerai à l'occasion

Quand on voit c'qu'on voit, et qu'on entend c'qu'on entend, on a raison d'penser c'qu'on pense !

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 05/10/2006 à 13:24

ouais pareil, j'ai un modèle MVC aussi :

- PHP
- AJAX
- HTML


C'est vrai, ca correspond

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

superfc | Florent
Membre

Photo de superfc

Inscrit le : 01/07/2006

# Le 05/10/2006 à 13:43

On en a déja parlé tous les deux, je suis pas tout à fait d'accord. Pour la base de données, j'utilise aussi une classe de plutôt haut niveau :

genre :
$infos = array('nom'=>'Dupont', 'prenom'=>'Pierre');
$BDD->put('personnes', $infos);
$id = $BDD->insert_id();

Ca fait gagner vraiment pas mal de temps et ça clarifie le code.
D'ailleurs, là, programmer en objet, ça sert pas à grand chose. Mais pour des transactions, j'utilise :
$BDD->transac_begin(); $BDD->transac_commit; $BDD->transac_rollback();
et ça permet de faire des transactions à plusieurs niveaux de façon très simple (le niveau de transaction est géré par la classe).

Et la classe permet par exemple de sauvegarder toutes les requêtes. Comme ça on test le script en faisant une transaction qui aboutie pas et on affiche toutes les requêtes SQL pour voir si tout se passe comme prévu.

Pour la sortie, j'utilise pas de classe parce que c'est le propore des CSS de permettre de réadapter un design. Donc je trouve que ça sert à rien de le faire faire par une classe en plus.

Par contre oui, pour faire des petites fonctions dédiées aux utilisateurs, ça me sert vraiment pas mal.

Moi je reste très attaché à programmer sans le modèle MVC, parce que ça permet de bien contrôler ce qu'on fait. Et par exemple pour faire du Ajax avec les caches, je pense pas que cakephp y ait pensé (c'est pas leur problème l'optimisation), pourtant ça sert énormément.
Par contre, je connais un peu le C# .NET, j'ai fait quelques petites programmes dessus, et c'est vraiment très très pratique. Mais je suis pas convaincu de l'utilité du MVC sur le Web.

Sinon, je continue à garder un grand nombre de fonctions, parce qu'un des gros intérêt du PHP c'est de charger les fonctions à la volée or quand on met tout dans des classes, y'a plein de fonctions dont on se sert jamais. Pour l'accès base de données, le temps de chargement est négligeable vu comme ça sert. Mais pour la plupart des autres trucs, ça coûte en performance.

Et humainement, l'objet ça fait plaisir. Ca relaxe de voir un code avec des objets, alors qu'avec que des fonctions ça devient très vite chiant.


Maintenant, ce que j'aimerais bien savoir faire, c'est programmer en objet en JavaScript...

Florent Clairambault - http://florent.clairambault.frOuvrir dans une nouvelle fenetre
Gtalk : superfc@gmail.com

erwinol | Erwin
Membre

Photo de erwinol

Inscrit le : 09/05/2005

# Le 05/10/2006 à 14:22

Zalex14 a dit :
Vous utilisez tous des framework pour développer vos sites ?


Moi oui mais c'est un FW perso que j'ai dev au boulot (chez mon ancien employeur).
Je ne l'utilise pas trop pour les projets persos parce que là je réutilise des trucs que j'ai fait auparavant ... le copier coller est souvent très tentant.

Sinon il y a un Framework simple en cours de dev : Le Zend Framework ... il a l'air relativement simple à manipuler mais il est encore un peu pauvre au niveau de la gestion des formulaires.

(Message édité le 05-10-2006 à 14h29 par erwinol)

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/10/2006 à 14:37

J'arrive pas trop a me motiver pour utiliser du code ecrit par d'autres...

J'ai juste quelques fichiers de fonctions que je reutilise
En particulier sur les bases de données qui permettent effectivement de logger les requetes et de voir leur temps d'execution
J'utilise aussi un groupe de fonction pour l'identification de session

Pour moi, le plus important c'est vraiment la performance et pas tellement le temps de developpement.
Les usines qui ouvrent 50 fichiers de configs, de templates et qui instancie des kilos d'objets sur toutes les pages, ca me plait pas

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

superfc | Florent
Membre

Photo de superfc

Inscrit le : 01/07/2006

# Le 05/10/2006 à 14:47

Bah oui, c'est ça la limite des classes. C'est que tu charges un gros truc à chaque fois. Tu peux charger des bouts de classe.

Florent Clairambault - http://florent.clairambault.frOuvrir dans une nouvelle fenetre
Gtalk : superfc@gmail.com

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 05/10/2006 à 14:59

Je donctionne comme devtribu, je prefere passer 20% de temps en plus a developper a louer 50% de serveurs en moins

Autant pour un site a frequentation moyenne ca n'a pas d'importance d'optimiser a outrance, autant pour des sites a tres fort traffic, c'est vital.

Donc c'est comme tous les outils, ils sont adaptes a certains usages, en dehors de leur domaine de predilection, ils ne sont pas adaptes.

superfc | Florent
Membre

Photo de superfc

Inscrit le : 01/07/2006

# Le 05/10/2006 à 15:23

Oui, enfin si tu fais du haut niveau et que tu mets en cache (soit en PHP, soit avec un serveur de cache) la différence de performance est complètement négligeable.

Florent Clairambault - http://florent.clairambault.frOuvrir dans une nouvelle fenetre
Gtalk : superfc@gmail.com

Geo 113 | Geoffrey
Modérateur

Photo de Geo 113

Inscrit le : 04/05/2005

# Le 05/10/2006 à 15:37

oui sauf que le cache n'est pas viable pour tous les usages,
il y a du contenu réellement dynamique

CosmixOuvrir dans une nouvelle fenetre
Rendez imprévisible l'Economie; Mentez aux sondages

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/10/2006 à 15:46

Le cache par serveur ne fonctionne pas tellement bien pas sur un forum ou sur un site de jeu.
Y a certaines requetes ou contenu qui peuvent etre en cache, mais pas toutes et surtout le cache est tres rapidement obsolete

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 05/10/2006 à 17:27

superfc> dans mon cas (myefarm), 90% du contenu de toutes les pages est dynamique. Donc le cache est quasiment inexistant

En faisant plus de 2 million de pages PHP / jour, la moindre opitimisation se ressent tout de suite sur les machines

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 9:13:05 | Généré en 11.36ms | Contacts | Mentions légales |