cakePHP - developpement rapide - framework MVC

cakePHP - developpement rapide - framework MVC - PHP - Programmation

Marsh Posté le 07-09-2006 à 02:55:52    

video de présentation : http://cakephp.org/screencasts/view/3
 
cakePHP est un framework (cadre de travail?) PHP basé sur le MVC (Model, View, Controleur).  
 
Le PHP etant un language parfois permissif, le code de certains programmeurs peut devenir très rapidement inmaintenable, c'est la ou intervient le MVC et la structure de cakePHP qui garantissent une séparation des données, de la logique et de la présentation.
 
la partie model de cakePHP fait gagner un temp considérable dans la gestion de la base de donné, on execute presque plus aucune requette et on est sur que dans une même page aucune requette superficielle n'est exécutée.
La classe fournit suffisement de methodes pour mapper la classe model aux structures de base de donnée les plus complexe (avec jointures) sans que la manipulation de la classe soient plus complexe après (on mappe une fois pour toute la ou les tables, ensuite on pioche dedans sans faire de requette ou jointure nous même)
 
il existe un systeme de scaffolding (echaffaudage) permettant de rapidement (une declaration de variable!) prototyper une application (les lister,ajouter, modifier, supprimer depuis une base de donnée).
 
tout un tas de classes sont fournient pour faire des traitements sur le textes, inclure rapidement des formulaires, valider les données et il est extremement facile d'isoler des bouts de son propre code pour les réutiliser en respectant la structure de cakePHP (helpers, component, plugins)
 
en bref je n'ai trouvé aucun défault a ce framwork que j'utiliserai dorenavent sans modération et vous?
http://www.cakephp.org


Message édité par speedyop le 07-09-2006 à 23:36:27
Reply

Marsh Posté le 07-09-2006 à 02:55:52   

Reply

Marsh Posté le 07-09-2006 à 10:15:59    

Je développe mon propre framework [:dawak]
 
J'ai beaucoup examiné Cake, y'a deux-trois trucs qui me plaisent pas trop et qui m'avaient l'air un peu louches, mais je sais plus quoi [:dawa]

Reply

Marsh Posté le 07-09-2006 à 13:28:54    

si tu retrouve les trucs je serais content que tu nous en fasse part.

Reply

Marsh Posté le 07-09-2006 à 13:30:55    

nous ?

Reply

Marsh Posté le 07-09-2006 à 13:39:19    

les gens du topic ^^
 
dans cakePHP la validation des données (puisque c'est le sujet actuel de ton topic) se fait principalement dans le model de facon assez simple pour une ou 2 verification, sinon il existe 2 ou 3 autres methodes de validations avancées dans leur wiki. j'ai opté pour cette solution
http://wiki.cakephp.org/tutorials:advanced_validation

Reply

Marsh Posté le 07-09-2006 à 23:37:30    

bon up, il va falloir en dire plus pour attirer du monde apparement, en fait je ne comprends pas qu'on tout ne le monde n'utilise pas ce genre de frameork depuis que je l'ai découvert, alors vos réponses? pkoa?

Reply

Marsh Posté le 11-09-2006 à 16:56:37    

Si je te dis : "par ce que je me fais un a moi perso tranquillou".
Ca va comme réponse?
Bon, alors on va dire que c'est par ce que j'ai du mal à croire qu'un systéme qui dit "on execute presque plus aucune requette et on est sur que dans une même page aucune requette superficielle n'est exécutée" et "on mappe une fois pour toute la ou les tables, ensuite on pioche dedans sans faire de requette ou jointure nous même" soit optimisé au niveau optimisation des requettes à la base de donnée. Personellement, ca me donne trop l'impression que le framework va lancer des requettes immense multijointures même si on a besoin que de deux colonnes situé dans la même table.
 
PS : En résumé, je préfaire avoir une parfaite métrise de mon code que de mal utilisé un systéme qui se dit meilleur dans la pluspart des cas.

Message cité 2 fois
Message édité par omega2 le 11-09-2006 à 16:57:26
Reply

Marsh Posté le 12-09-2006 à 02:43:16    

omega2 a écrit :

Si je te dis : "par ce que je me fais un a moi perso tranquillou".
Ca va comme réponse?
Bon, alors on va dire que c'est par ce que j'ai du mal à croire qu'un systéme qui dit "on execute presque plus aucune requette et on est sur que dans une même page aucune requette superficielle n'est exécutée" et "on mappe une fois pour toute la ou les tables, ensuite on pioche dedans sans faire de requette ou jointure nous même" soit optimisé au niveau optimisation des requettes à la base de donnée. Personellement, ca me donne trop l'impression que le framework va lancer des requettes immense multijointures même si on a besoin que de deux colonnes situé dans la même table.
 
PS : En résumé, je préfaire avoir une parfaite métrise de mon code que de mal utilisé un systéme qui se dit meilleur dans la pluspart des cas.


 
Idem, mais pour moi la raison est que je suis un noob  :( Fo dire que lorsqu'on ma expliqué la POO on me parlait de voitures, de roues et de portes !
 
Merci Oooooooooooooooooooooooo mes anciens profs que j'encule si fort !


Message édité par supermofo le 12-09-2006 à 02:44:37
Reply

Marsh Posté le 12-09-2006 à 07:56:18    

moi ct avec des figures géométriques...peu importe le flacon, pourvu qu'on ait l'ivresse ;) ...
 
pour revoir tes bases en Poo je te recommande l'introduction du java tutorial...y'a une histoire de vélo pas mal foutue, et assez simple à comprendre...je l'avais recommandé aux gens de ma classe qui panaient rien à la POO
 
http://java.sun.com/docs/books/tut [...] index.html


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 13-09-2006 à 03:38:58    

omega2 a écrit :

Si je te dis : "par ce que je me fais un a moi perso tranquillou".
Ca va comme réponse?
Bon, alors on va dire que c'est par ce que j'ai du mal à croire qu'un systéme qui dit "on execute presque plus aucune requette et on est sur que dans une même page aucune requette superficielle n'est exécutée" et "on mappe une fois pour toute la ou les tables, ensuite on pioche dedans sans faire de requette ou jointure nous même" soit optimisé au niveau optimisation des requettes à la base de donnée. Personellement, ca me donne trop l'impression que le framework va lancer des requettes immense multijointures même si on a besoin que de deux colonnes situé dans la même table.
 
PS : En résumé, je préfaire avoir une parfaite métrise de mon code que de mal utilisé un systéme qui se dit meilleur dans la pluspart des cas.


 
grace a une constante de debug on peut afficher les requettes exécutées et le temps d'execution.
En general les requettes sont optimisés selon les champs que tu souhaites retirer, et il est toujours possible d'executer sa requette ecrite si l'on désire.
L'idée est de conserver une rapidité de codage, ensuite il est en effet peut etre necessaire d'ecrire ses propre requettes pour des jointure spécifique, mais dans ce cas quel framework universel peut gerer les cas specifique?  
 
j'ai l'impression que chacun  essaye de faire son propre framework dans son coin, pour exemple l'un de mes donneur d'ouvrage est en train de developper le sien, et je suis obligé de l'utiliser. Il a sa propre logique, pas le temps de tout documenter, rajoute des trucs a droite a gauche, rebrousse chemin, sa convention de syntaxe et nommage est pas genial (mais lui convient parfaitement).
 
Bref quand a moi je prefere ne pas reinventer la roue et m'appuyer sur un framework collaboratif disposant d'une communauté importante.
 
Pour la programmation objet, une fois compris on se rend compte que c'est beaucoup plus simple que de se trimballer des variables et tableaux au nom a rallonge pour etre descriptive.


Message édité par speedyop le 13-09-2006 à 03:51:44
Reply

Marsh Posté le 13-09-2006 à 03:38:58   

Reply

Marsh Posté le 13-09-2006 à 08:46:18    

Dans l'ensemble, je serais assez tenté d'être d'accord avec speedyop, si ce n'est qu'actuellement, en PHP, je n'ai pas encore touvé de framework que j'estime bien codé (les fonctionnalités ne me suffisent pas, je cherche aussi à savoir comment il les fournit). Le mieux réalisé que j'ai vu actuellement, c'est jelix, mais il ne répond pas encore complètement à mes propres critères d'exigence pour la qualité du code.  
Résultat, j'en suis réduit à faire mon propre framework. Ca me fait bien chier parce que j'aurais préférer prendre un truc tout fait également et ne pas réinventer la roue, mais bon...

Reply

Marsh Posté le 13-09-2006 à 14:10:24    

as tu des exemples d'exigence que tu as pour un framwork? que je regarde si je devrait monter les miennes?

Reply

Marsh Posté le 13-09-2006 à 17:38:53    

- Pas d'accès direct non-controlé à des membres d'une classe.  
- Pas d'assignation d'un valeur sans vérification du type (au minimum)
- Pas de fichier de configuration xml sans xsd (ou dtd à la rigueur)
- Pas d'utilisation de module PEAR
- Fonctionnement normal en safe mode
- Pas de modification direct du modèle dans la vue (pour la partie MVC)
- Full PHP 5
- Utilisation de PDO ou, si indisponible, d'ADO-DB pour les accès DB
- ...

Reply

Marsh Posté le 13-09-2006 à 17:51:46    

gizmo a écrit :

- Pas d'accès direct non-controlé à des membres d'une classe.  

qu'entends tu par non controllé?
sinon il y a une methode dans chaque controller pour acceder a une methode d'une autre classe $AppController::requestAction(). Indispensable a vrai dire dans une architecture MVC avec DataObject.

 
- Pas d'assignation d'un valeur sans vérification du type (au minimum)
ça c'est une constante de PHP non?
 
- Pas de fichier de configuration xml sans xsd (ou dtd à la rigueur)
le fichier ini ne te suffit pas? XML c'ets lours a parser alors qu'il y aune fonction PHP pour parser un .ini
 
- Pas d'utilisation de module PEAR
les modules PEAR sont justement bien carré mais a la syntaxe et configutaion un peu longuet non? maus sinon tu peut les intégrer en tant que plugins externe (via le repertoire vendors), comme des modules de ZendFrameWork ou smarty. Il est conseiller ensuite de créer ce qui est appeller un Helper pour uniformiser la syntxe d'appelle au composants.
 
- Fonctionnement normal en safe mode
le mode debug a 3 niveau de securité, par défaut i lest a un pour afficher certaines erreurs (de pages manquantes principalement) mais en prod faut le mettre a 0
 
- Pas de modification direct du modèle dans la vue (pour la partie MVC)
La vue ne devrait JAMAIS modifier le modele, dans quel cas de figure doit tu faire ca? si c'est du ajax, il y a un HELPER AJAX
 
- Full PHP 5
non compatible PHP4
 
- Utilisation de PDO ou, si indisponible, d'ADO-DB pour les accès DB
vi c'est ce que je prefere, par rapport au PEAR_db_dbo par exemple.
 
- ...

Message cité 1 fois
Message édité par speedyop le 13-09-2006 à 17:52:08
Reply

Marsh Posté le 13-09-2006 à 18:15:23    

sinon je suis en train de travailler en localhost sur un truc, je viens d'uploader mon avancement, si vous desirer voir ce que peut donner cakephp mis en oeuvre.
 
http://www.azndiffusion.com/shop/
 
attention c'est carrement pas fini, il doit encore manquer 1 ou 2 verifications, je vous le montre surtout pour vous monter ce qu'on peut faire en pas beaucoup de ligne de code, le controller produit fait actuellemnt tout juste 100 lignes, le model associé qui inclut les verifs 70 et la vue de la page d'edition (même si c'est pas significatif) 69 lignes ajax comprix (essayer d'uploader une photo et de la supprimer apres, j'ai pas de verif sur le type pour l'instant.) La methode correspondant a la page d'edition c'est 2 lignes...

Reply

Marsh Posté le 13-09-2006 à 18:19:21    

[Attention]Je ne connais pas cakePHP, j'y ai jeté un oeil il y a quelques temps et s'tout. Je réponds donc juste au dernier post[/Attention]
 
 

gizmo a écrit :

- Pas d'assignation d'un valeur sans vérification du type (au minimum)


speedyop a écrit :

ça c'est une constante de PHP non?


Je dois mal comprendre ta phrase mais tu n'es tout de même pas en train de dire qu'il y a vérification de type à chaque assignation en php?  
 

gizmo a écrit :

- Pas de fichier de configuration xml sans xsd (ou dtd à la rigueur)


speedyop a écrit :

le fichier ini ne te suffit pas? XML c'ets lours a parser alors qu'il y aune fonction PHP pour parser un .ini


Pour le coup je plussoie gizmo, les fichiers de confs en xml sont souvent plus pratiques. Même si effectivement parse_ini_file marche pas mal.
 

gizmo a écrit :

- Pas de modification direct du modèle dans la vue (pour la partie MVC)


speedyop a écrit :

La vue ne devrait JAMAIS modifier le modele, dans quel cas de figure doit tu faire ca? si c'est du ajax, il y a un HELPER AJAX


Il a pas dit qu'il voulait faire ça, mais que ça devait pas être possible :o
 

gizmo a écrit :

- Full PHP 5


speedyop a écrit :

non compatible PHP4


ce qui n'est pas signe de qualitaÿ, car AMHA l'objet en php[edit]4[/edit] [:vomi]


Message édité par anapajari le 13-09-2006 à 18:20:36
Reply

Marsh Posté le 13-09-2006 à 18:45:36    

compatible php5 et 4 il applique 2 model different selon la version php installée.

Reply

Marsh Posté le 13-09-2006 à 19:41:01    

si il veut une DTD ou un XSD c'est AMHA pour pouvoir valider son fichier de conf...c une vérif de syntaxe basique qui t'évites de tourner 50 ans pour voir pkoi ton fichier de conf est pas pris ou déconne...
 
pour la vérif de type et le controle d'accès, ca me semble des principes de base objet (encapsulation et typage fort)...(même si masklinn passe par là et nous poste ses trucs sur le typage bizarre en python :o )
 
Il veut aussi un framework permettant de découpler ton code de la base...
 
bref, il veut un truc propre :o


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 13-09-2006 à 22:51:45    

bah oui, voila :o Et vu les bugs qu'il y a actuellement dans PHP, c'est pas une sinécure pour y arriver :/

Reply

Marsh Posté le 13-09-2006 à 23:03:52    

c'est PHP aussi...[:spamafote]
 
j'ai fait des efforts, j'étais presque motivé pour faire mon site en php...j'ai lu le début du bouquin que je me suis meme spécialement acheté pour l'occasion...j'ai abandonné : mon site sera en java, ou  ne sera pas (ou en   .NET mais j'ai la flemme d'apprendre :o )


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 13-09-2006 à 23:15:55    

Bah, oui, mais bon, sur les mutus, c'est un peu la misère pour trouver autre chose que du php à un prix convenable (quoique, ça commence lentement à changer avec ruby), donc, faute de grives...

Reply

Marsh Posté le 13-09-2006 à 23:49:29    

faire un site en java? un site perso tu veux dire?

Reply

Marsh Posté le 13-09-2006 à 23:50:03    

gizmo a écrit :

Bah, oui, mais bon, sur les mutus, c'est un peu la misère pour trouver autre chose que du php à un prix convenable (quoique, ça commence lentement à changer avec ruby), donc, faute de grives...


on mange du Cake? :D

Reply

Marsh Posté le 14-09-2006 à 07:59:20    

speedyop a écrit :

faire un site en java? un site perso tu veux dire?


 
oui...j'ai une formation de développeur J2EE, mais je suis plus du tout là dedans...et donc ca me fait chier de devoir apprendre un autre langage alors que j'en connais déjà un qui va très bien pour faire des sites :o


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed