Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'entends souvent parler de CRUD (create, Read, Update, Delete) et souvent je lis qu'un des atouts du Framework Symphony est qu'il gère le CRUD. Concrètement je ne vois pas vraiment ce que doit implémenter le CRUD, et ayant vu des contribs ZF à ce sujet, je cherche à comprendre, en vain.
Il s'agit d'un modèle qui implémente tout seul les actions ? Ce qui m'interpelle, c'est que dans mon appli ZF, chaque module correspond à une table Mysql (sans compter les relations). Du coup, j'ai toujours les actions createAction, readAction, updateAction, deleteAction au minimum. Peut-être que c'est à ce niveau qu'intervient une gestion de Crud ?
Hors ligne
Quand ils parlent du CRUD, ils ne parleraient pas plutot du scaffolding?(génération d'administration automatique )
Hors ligne
Non CRUD je crois. Par contre, je viens de voir une vidéo sur le site symphony faisant ce que tu dis, la génération d'administration automatique !!!! J'ai été bluffé !!! Ca me parrait difficile de faire la même chose avec ZF non ?
Hors ligne
Mon avis: ce que symphony fait, zf peut le faire...
J'ai entendu parler d'une prochaine fonctionnalité de Zend_Form qui génèrera un form à partir d'un Zend_Db_Table (en gros). Ca sera déjà un bon début
Hors ligne
Regarde cette vidéo concernant l'admin generator de Symphony : http://www.symfony-project.org/screenca … generator. Quoi qu'il en soit, ça ne répond pas à ma question, le CRUD intervient ou ? C'est un modèle qui va me générer des états ? des formulaires ?
Hors ligne
(J'ai vu ce screencast il y a bien longtemps déjà...)
Ta question est étrange...
Le CRUD n'est pas lié au ZF...
Par contre ZF va te permettre de dév ton propre CRUD...
Par exemple... http://www.z-f.fr/forum/viewtopic.php?pid=4750#p4750
Hors ligne
Ta question est étrange...
En fait, je n'arrive pas à comprendre ou intervient le CRUD. Je vais lire le liens que tu as posté. Merci.
Hors ligne
dans mon appli ZF, chaque module correspond à une table Mysql (sans compter les relations). Du coup, j'ai toujours les actions createAction, readAction, updateAction, deleteAction
En gros c'est ça le CRUD...
petit +: http://fr.wikipedia.org/wiki/CRUD
Hors ligne
Salut à tous,
withespirit a écrit:
Par contre, je viens de voir une vidéo sur le site symphony faisant ce que tu dis, la génération d'administration automatique !!!! J'ai été bluffé !!!
Effectivement, c'est vraiment bluffant. La facilité avec laquelle il obtient une interface d'administration en n'écrivant quasiment rien, c'est impressionnant !!!
Bon et bien, je crois qu'il va falloir travailler d'arrache pieds pour réaliser un système encore mieux que ça ;-)
Cordialement, Azema.
Hors ligne
A noter que le scaffolding made in ZF est en cours :
Détails ici
Merci au gourou Julien pour cet article
Hors ligne
Mr.MoOx a écrit:
dans mon appli ZF, chaque module correspond à une table Mysql (sans compter les relations). Du coup, j'ai toujours les actions createAction, readAction, updateAction, deleteAction
En gros c'est ça le CRUD...
petit +: http://fr.wikipedia.org/wiki/CRUD
Exact, l'idée c'est de regrouper ces actions standards dans une classe parent dont chaque controlleur dérivera.
Hors ligne
apparemment, la réponse à ta question ce serait plutôt Zend_Db_Table.
Lorsque tu créés un modèle (par exemple) qui dérive de cette classe, genre ça :
class Users extends Zend_Db_Table_Abstract { protected $_name = 'users'; }
alors tu peux directement utiliser les méthodes "CRUD", ou plutôt "IFUD", que sont insert(), find*(), update() et delete() :
$table = new Users(); // insert $data = array( 'first_name' => 'Abra', 'last_name' => 'Cadabra' ); $table->insert($data); $user_id = $table->getAdapter()->lastInsertId(); // update $data = array( 'email' => 'abra@cadabra.fr' ); $where = $table->getAdapter()->quoteInto('user_id = ?', $user_id); $table->update($data, $where); // find $row = $table->find($user_id)->current(); // ou aussi par exemple $row = $table->fetchRow($table->select()->where('last_name = ?', 'Cadabra')); // delete $where = $table->getAdapter()->quoteInto('user_id = ?', $user_id); $table->delete($where);
Si tu définis des relations correctement dans tes modèles dérivés de Zend_Db_Table_Abstract, elles pourront également être prises en charge.
Voila voila, il se fait tard, aussi ne m'en voulez pas s'il y a des typos (ou pire :p) dans le code !
Sinon, la doc officielle est plutôt pas trop mal pour le coup...
Dernière modification par gauthier (09-10-2008 22:43:27)
Hors ligne
Bonsoir,
Qu'apporte le CRUD face à une classe qui étand Zend_Db_Table_Abstract ?
-La génération automatique d'un formulaire ?
J'aimerais être bluffé par le CRUD, apparemment il y aurait des vidéos sur la mise en place de backoffice, auriez vous un lien?
Merci
Hors ligne
un crud ce n'est pas au niveau de la base mais du controller
dans mon cas ma classe crud permet ceci
je crée une table dans la base Client par exemple
Je crée un classe Client_Row dans modèle dérivée de Zend_Db_Table_Row (je n'y mets rien de particulier mais elle servira à porter les méthode métier)
Je crée une classe Client_Table dans modèle dérivée de Zend_Db_Table associé à Client_Row et à la table client
Je crée un Contrôleur dérivé du CRUD générique je l'associe à Zend_Db_Table
Je crée Trois vues une pour afficher une liste de Client une pour un formulaire de saisie et une pour une demande de confirmation de suppression.
et c'est tout ça marche tout seul. tout ça sans une ligne de code juste du déclaratif
pourquoi créer toute ces classes
simplement parce que ainsi je peux librement étendre et surcharger le crud dans toute les partie les vue, le contrôleur, le métier et la persistance.
je peu n'en utiliser qu'une partie ou dérouter des logique d'enchainement pour définir une autre logique applicative.
A+JYT
Hors ligne
Bonjour,
sekaijin, serais-tu près à partager ton code? Je suis en plein apprentissage, et le fonctionnement que tu as obtenu est exactement celui que je recherche.
Dans le cas ou tu ne souhaiterais pas partager, j'ouvrirai un poste pour montrer mon avancée dans ma conception de mon CRUD
Merci
Hors ligne
j'ai déjà publié des partie de mon code sur le forum et sur mon blog
mais pour des raison interne je suis reste en version 1.0.4
il faudra patienter un peu pour que je publie un article sur le sujet car je n'ai pas beaucoup de temps à y consacrer
A+JYT
Hors ligne
sekaijin a écrit:
j'ai déjà publié des partie de mon code sur le forum et sur mon blog
Pourrais-tu re-fournir le lien de ton blog, je suis vivement intéressé.
Merci
Hors ligne
http://sekaijin.ovh.org/
Un coup de pseudo sous google aurait suffit :p
Hors ligne
salut,
je travaille sur un framework (sur framework à Zend) qui peut s'apparenter à du CRUD :
le but est de simplifier et de rationaliser (maintenance++) le developpement d'appli de type "admin machin truc pour le service bidule"...
- full oo
- html less
http://code.google.com/p/easyphpapp/
go SVN pour les dernières modifs
a+
Hors ligne
Merci pour le partage de tes sources,
J'ai regardé ton code, et tu es parti dans la même direction que moi en poussant un peu plus.
Tu devrais créer une doc plus précise pour montrer ce que ton app permet en ne permet pas.
Hors ligne
oui il me faudrait environ 30 heure par jour pour faire tout ce que je doit faire. Je ne dort que 4 heures mais même ainsi je n'ai pas encore trouvé le temps d'ajouter un article plus précis sur le crud
A+JYT
Hors ligne
Salut,
@sekaijin: je pense qu'il parlait à quazardous
Mais en passant, le travail que tu partages est plus important que ce que tu penses sekaijin. Parfois il inspire, d'autre fois c'est simplement de la curiosité.
Dans tous les cas, les articles sur ton blog et tes messages ici (malgré les petits pb d'orthographe hein :p) sont toujours passionnants.
Je me sens très proche de ton travail, évoluant globalement dans la même pensée. Toi tu apportes en plus l'expérience que nous n'avons pas forcément (j'en ai mais pas autant, plus tard !), et des réponses très précises et souvent très pédagogiques.
Voilà ça c'est dit, j'en ai profité. Depuis que je te lis, tu mérites bien un peu d'encouragements !
A+ benjamin.
Hors ligne
re,
je sais pas si c à moi ou à sekaijin qu'on a répondu.. ;p
argghhh : la doc *lol*
bonne idée... je suis preneur de piste de commencement ... y déjà pas mal d'exemples commentés ... et j'ai ajouté une page sur la notion de model dans le peiti framework (150+ classes déjà)
a+
Hors ligne
Bonjour,
J'ai fais quelques progrès depuis mon dernier crud.
Voici le nouveau Crud lesauf.
Je suis parti du Crud de Sekaijin (merci beaucoup).
1 - Intégration du design pattern façade
2 - Intégration du |url=http://www.petala-azul.com/grid]datagrid de Mascker[/url]
3 - Définition du menu dans un fichier ini. Ainsi le menu est filtré selon les droits d'acces
4 - Plein d'autres améliorations encore (Je ne m'en souviens plus trop)
J'avais utilisé Dojo, mais je l'ai désactivé ensuite, trop lourd et en plus j'arrive pas à trouver des plugins pour l'editeur.
je n'ai pas ecris un manuel d'utilisateur. J'ai juste mis quelques instructions à l'accueil.
Comme toujours, j'aimerais si possible avoir vos améliorations. Merci.
Cordialement,
Lesauf
Hors ligne