Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1586 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  62  63  64  65  66  67
Auteur Sujet :

Model View Controller (MVC) - Architecture des applications PHP

n°1210220
skeye
Posté le 28-09-2005 à 20:27:30  profilanswer
 

Reprise du message précédent :
Moi j'ai du SQL dans le métier et je vous merde.[:petrus75]
Mais d'un autre coté j'aimerais bien reprendre ce code...[:joce]


Message édité par skeye le 28-09-2005 à 20:27:41

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 28-09-2005 à 20:27:30  profilanswer
 

n°1210232
onizuka_se​nsei
Posté le 28-09-2005 à 20:57:10  profilanswer
 

Si ça peut t'aider FlorentG, regarde ActiveRecord [1] utilisé dans rubyonrails pour la base de données (SGBD supportés: mysql, sqlite,sql server,oracle, postgresql...); et accessoirement rubyonrails [2] tout court pour regarder leur modèle MVC qui est vraiment très bon et simple d'emploi.
 
[1] http://ar.rubyonrails.org/
[2] http://rubyonrails.com


Message édité par onizuka_sensei le 28-09-2005 à 21:00:33
n°1210295
FlorentG
Unité de Masse
Posté le 28-09-2005 à 22:14:48  profilanswer
 

Ouais, je connais l'ActiveRecord, il est cité dans le POEAA.  
 
Maintenant est-ce qu'un ActiveRecord peut accéder à plusieurs tables ? Si je crois bien la page sur rubyonrails, ils peuvent utiliser plusieurs tables liées... Ce qui est fort intéressant [:dawa]

n°1210454
nraynaud
lol
Posté le 29-09-2005 à 09:21:42  profilanswer
 

sa doutes façons en PHP c'est fondamentalement vicié : c'est fait pour avoir du HTML dans le business


---------------
trainoo.com, c'est fini
n°1210458
skeye
Posté le 29-09-2005 à 09:23:40  profilanswer
 

nraynaud a écrit :

sa doutes façons en PHP c'est fondamentalement vicié : c'est fait pour avoir du HTML dans le business


 
Avec un moteur de templates on peut déporter ça proprement...:o

n°1210466
FlorentG
Unité de Masse
Posté le 29-09-2005 à 09:30:16  profilanswer
 

nraynaud a écrit :

sa doutes façons en PHP c'est fondamentalement vicié : c'est fait pour avoir du HTML dans le business


Oublie pas que PHP est un langage de template à la base...

n°1210468
skeye
Posté le 29-09-2005 à 09:30:50  profilanswer
 

FlorentG a écrit :

Oublie pas que PHP est un langage de template à la base...


 
Nan, un langage de script.:o

n°1210469
FlorentG
Unité de Masse
Posté le 29-09-2005 à 09:31:26  profilanswer
 

skeye a écrit :

Nan, un langage de script.:o


Nan, un langage de template :o

n°1210481
nraynaud
lol
Posté le 29-09-2005 à 09:37:16  profilanswer
 

justement, c'est débile de tout vouloir faire avec.


---------------
trainoo.com, c'est fini
n°1210483
FlorentG
Unité de Masse
Posté le 29-09-2005 à 09:38:28  profilanswer
 

Pour ça que j'utilise des templates XSLT [:dawa]

mood
Publicité
Posté le 29-09-2005 à 09:38:28  profilanswer
 

n°1210667
skeye
Posté le 29-09-2005 à 11:49:27  profilanswer
 

Bon, et pour gérer plusieurs modes d'identification, vous feriez comment?:o
 
J'ai plusieurs possibilités de ce coté-là, grâce auxquelles je récupère une valeur (pas forcément la même) qui me permet de construire mon objet 'utilisateur'.
Vous feriez quoi, une classe mère "identification" avec une méthode "checkparameters()" et une méthode "getuser()", puis une classe fille par type d'identification? :??:

n°1210676
FlorentG
Unité de Masse
Posté le 29-09-2005 à 11:55:30  profilanswer
 

Quels sont tes différents types d'identification ?

n°1210722
skeye
Posté le 29-09-2005 à 13:05:07  profilanswer
 

FlorentG a écrit :

Quels sont tes différents types d'identification ?


 
1) Saisie d'un identifiant + mot de passe spécifiques à l'appli.
2) Saisie d'un identifiant + mdp LDAP, le LDAP me donnant l'identifiant du cas 1)
3) Passage par un serveur d'authentification complètement externe, qui me retourne...le login LDAP.[:petrus75]

n°1210865
skeye
Posté le 29-09-2005 à 15:41:35  profilanswer
 

Bon, pour ma couche d'accès à la base, je doute...[:petrus75]
Je me demande franchement comment implémenter ça correctement.:o

n°1210873
nraynaud
lol
Posté le 29-09-2005 à 15:51:27  profilanswer
 

skeye a écrit :

Bon, pour ma couche d'accès à la base, je doute...[:petrus75]
Je me demande franchement comment implémenter ça correctement.:o


tu fais comment pour savoir dans quel cas tu te trouves ? y'a une combobox ?


---------------
trainoo.com, c'est fini
n°1210879
skeye
Posté le 29-09-2005 à 15:57:54  profilanswer
 

nraynaud a écrit :

tu fais comment pour savoir dans quel cas tu te trouves ? y'a une combobox ?


Fichier de config.

n°1210880
skeye
Posté le 29-09-2005 à 15:58:40  profilanswer
 

(mais en fait pour mon identification je pense que j'ai un diagramme de classes qui tient la route...plus qu'à l'implémenter.)

n°1210891
nraynaud
lol
Posté le 29-09-2005 à 16:09:45  profilanswer
 

skeye a écrit :

Fichier de config.


donc tu fais une interface AuthenticationSource avec 3 impleméntations concrètes, l'implémentation concrète est choisie par la config.


---------------
trainoo.com, c'est fini
n°1210898
skeye
Posté le 29-09-2005 à 16:16:33  profilanswer
 

nraynaud a écrit :

donc tu fais une interface AuthenticationSource avec 3 impleméntations concrètes, l'implémentation concrète est choisie par la config.


 
wala. Enfin une classe AuthenticationSource et 3 classes filles, parce-qu'en PHP4 ya pas d'interfaces...[:petrus75]
 
Et derrière je vais créer un manager de ldap, un manager de serveur d'auth, et enfin me décider à faire un manager de bdd...:o


Message édité par skeye le 29-09-2005 à 16:26:53
n°1211074
FlorentG
Unité de Masse
Posté le 29-09-2005 à 19:55:00  profilanswer
 

Moi j'utilise des interfaces en PHP4 [:petrus75] Enfin ArgoUML me génère ça. donc tu te retrouves avec :

class MyInterface {
 
  function pouet {
    exit('function pouet must be implemented');
  }
}
 
class MyImplementation
        /* specifications are not supported by PHP versions before 5.0 */
        /* implements MyInterface */
{
  function pouet() {
 
  }
}


[:kbchris]

Message cité 2 fois
Message édité par FlorentG le 29-09-2005 à 19:55:21
n°1211085
skeye
Posté le 29-09-2005 à 20:03:21  profilanswer
 

FlorentG a écrit :

Moi j'utilise des interfaces en PHP4 [:petrus75] Enfin ArgoUML me génère ça. donc tu te retrouves avec :

class MyInterface {
 
  function pouet {
    exit('function pouet must be implemented');
  }
}
 
class MyImplementation
        /* specifications are not supported by PHP versions before 5.0 */
        /* implements MyInterface */
{
  function pouet() {
 
  }
}


[:kbchris]


 
 
[:pingouino]
 
En fait je viens de me rendre compte que je vais devoir réinstaller php sur le serveur de toute manière...donc gogogo php5! [:kbchris]


---------------
Can't buy what I want because it's free -
n°1213668
Sylvio
Posté le 03-10-2005 à 15:15:10  profilanswer
 

Bonjour à tous,
 
Je choppe la discussion sur le fil. Je suis développeur Web, je développe un CMS/Framework basé sur PEAR (DataObject/Quickform), XML (pour la configuration) et PHP5 (POO, MVC, ...)
 
Ca fait un an que je développe petit à petit mon CMS/Framework et forcement au bout d'un an ça devient très bordélique, ça a beaucoup évolué, j'ai appris beaucoup de concept, découvert d'autres packages PEAR.
 
Bref une version 2 ne serait pas de trop.
Cette version serait déjà découpé en 4 :
- Le CMS proprement dit (pas opensource à priori) donc l'application, le CMS.
- Le Framework : debbugage, gestion des logs, configuration (base de données, environnement), "utilitaires web" (stats, détection robots) etc.
- La Logique métier : Ici normalement, tout est dans des classes DataObject généré (une par table). Ces classes qui héritent donc de PEAR::DB_DataObject peuvent accèder librement à la base de données (MySQL ou autre) et ajouter les méthodes métiers.
- Les packages (des classes) qui peuvent être des packages PEAR, des packages PEAR créés spécifiquement pour cette application.
 
Je m'intéresse au CMS qui utilise le Framework
Voilà ma logique MVC :
Le Controleur devrait être une classe qui controle :
- le CMS (gestion utilisateur, gestion des modèles, lecture de fichier de config XML de description)
- L'intégration de l'exécution dans le framework (conf, logs, debbugage)
- Une couche optionnelle d'authentification (PEAR::Auth)
 
Le modèle contient :
- Le package PEAR::DB_Dataobject, les classes métiers générés et étendues. Plus besoin de singleton, DB_Dataobject s'occupe de tout.
- Ici je pense que tout doit partir d'une superclasse (DataObject pour moi) et être hérité, au besoin il est toujours possible d'accèder directement à la base de données en SQL grâce à PEAR::DB mais là on perd le bénéfice de DB_Dataobject qui permet de se libéré du code SQL et d'être portable (parmis les SGBD supporté par PEAR::DB)
 
La vue contient :
- Les transfertObject : package qui contiennent les données sous forme d'objets appropriés : formulaire (PEAR::HTML_Quickform), Listing (PEAR::Structure_Datagrid ?), Hiérarchie (PEAR::HTML_Treemenu), etc.
- Les renderer : Transforme les TransfertObject en HTML ou autre (XHTML, CSV, code pour template, PDF, etc)
- L'assemblage et le traitement : exemple, pour une sortie HTML : créé la page HTML (intégration de javascript, css), structure le document, ... l'enregistre ou l'envoi au client, etc.
 
Pour tout ceci je me suis aidé de votre topic (yabon) et de :
http://fashion.hosmoz.net/blog/200 [...] pos-de-mvc (gooOOood)
 
Pour développer mon CMS, la partie Model est réduite car mon CMS doit pouvoir en théorie à n'importe quelle logique métier (pas trop complexe quand même) : table liées, hiérarchisées, ordonnées... Il est possible de développé des modules pour des logique métier prédéterminé (actualités , annuaire, catalogue produit ...)
 
La couche Controleur concerne donc le CMS et le Framework proprement dit. Ya donc pas mal à coder (c'est ma version 1 à restructurer).
 
- La couche Vue : Là ce que j'aimerai faire c'est utiliser un max de package PEAR ou développer de nouveaux packages PEAR (j'ai déjà des idées).
 
Merci de vos avis, commentaires, conseils là dessus.
Si du monde est intéressé ou participe à un projet similaire, merci de me contacter à sylvain at com - ocean point com

Message cité 1 fois
Message édité par Sylvio le 03-10-2005 à 15:21:58
n°1213706
skeye
Posté le 03-10-2005 à 15:51:55  profilanswer
 

En tout cas travailler comme ça, ça allège beaucoup mon index.php..

Code :
  1. <?php
  2. @session_start();
  3. require_once('includes/site_config.php');
  4. $conf = new site_config($ini_path);
  5. require_once('includes/portail.php');
  6. $portail = new portail($conf);
  7. $portail->executer();
  8. ?>


 
...et c'est le seul script du répertoire! [:petrus75]


Message édité par skeye le 03-10-2005 à 15:52:47

---------------
Can't buy what I want because it's free -
n°1214241
FlorentG
Unité de Masse
Posté le 04-10-2005 à 12:08:12  profilanswer
 

Sylvio a écrit :

La vue contient :
- Les transfertObject : package qui contiennent les données sous forme d'objets appropriés : formulaire (PEAR::HTML_Quickform), Listing (PEAR::Structure_Datagrid ?), Hiérarchie (PEAR::HTML_Treemenu), etc.
- Les renderer : Transforme les TransfertObject en HTML ou autre (XHTML, CSV, code pour template, PDF, etc)
- L'assemblage et le traitement : exemple, pour une sortie HTML : créé la page HTML (intégration de javascript, css), structure le document, ... l'enregistre ou l'envoi au client, etc.


C'est pas trop lourdingue avec tous les transferObject qui utilisent des classes Pear ?
 
Sinon chez moi, c'est des XmlBinder (ou autre), qui, à partir d'un modèle, créer une vue XML. Pis les renderer sont en XSLT pour transformer ça en texte, XHTML, PDF, etc...

n°1214310
kiko1980
Posté le 04-10-2005 à 13:09:58  profilanswer
 

Bonjour,  
j'ai une application 3-tiers ( jsp, servlets, beans) codée en java, je veux integrer xml/xsl à cette application pour qu'elle puisse fonctionner sur plusieurs terminaux pc, pda, téléphones, ... mais je ne sais pas à quel niveau je vais pouvoir utiliser le xml puis le xsl qui va le transformer, ni comment les créer.  
si tu peut m'aider FlorentG ça serait sympa.  

n°1214311
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 13:11:47  profilanswer
 

FlorentG a écrit :

Moi j'utilise des interfaces en PHP4 [:petrus75] Enfin ArgoUML me génère ça. donc tu te retrouves avec :

class MyInterface {
 
  function pouet {
    exit('function pouet must be implemented');
  }
}
 
class MyImplementation
        /* specifications are not supported by PHP versions before 5.0 */
        /* implements MyInterface */
{
  function pouet() {
 
  }
}


[:kbchris]


Intérêt des interfaces dans un langage à typage dynamique [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1214316
uriel
blood pt.2
Posté le 04-10-2005 à 13:20:18  profilanswer
 

ben c'est propre [:petrus75]
 tu declares que ce tu peux faire avec et puis basta [:petrus75]


---------------
IVG en france
n°1214317
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 13:21:46  profilanswer
 

uriel a écrit :

ben c'est propre [:petrus75]
 tu declares que ce tu peux faire avec et puis basta [:petrus75]


Tu définis des protocoles et tu passes par le duck typing, l'interface devient un peu redondante vu qu'elle est totalement inutile [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1214320
uriel
blood pt.2
Posté le 04-10-2005 à 13:24:44  profilanswer
 

masklinn a écrit :

Tu définis des protocoles et tu passes par le duck typing, l'interface devient un peu redondante vu qu'elle est totalement inutile [:petrus75]


tout de suite les gros mots [:thalis]


---------------
IVG en france
n°1214322
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 13:28:06  profilanswer
 

uriel a écrit :

tout de suite les gros mots [:thalis]


[:sisicaivrai]
 
Enfin bon, toujours est-il que les interfaces peuvent peut être avoir un ou deux usages dans les langages à typage dynamique, mais c'est franchement rare [:petrus75]


Message édité par masklinn le 04-10-2005 à 13:29:09

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1214323
nraynaud
lol
Posté le 04-10-2005 à 13:28:35  profilanswer
 

masklinn a écrit :

Intérêt des interfaces dans un langage à typage dynamique [:petrus dei]


définir les contrats ?


---------------
trainoo.com, c'est fini
n°1214325
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 13:30:19  profilanswer
 

nraynaud a écrit :

définir les contrats ?


[:petrus75]
 
Définir un protocole a le même résultat, avec des couches en moins [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1214366
FlorentG
Unité de Masse
Posté le 04-10-2005 à 13:53:49  profilanswer
 

kiko1980 a écrit :

Bonjour,  
j'ai une application 3-tiers ( jsp, servlets, beans) codée en java, je veux integrer xml/xsl à cette application pour qu'elle puisse fonctionner sur plusieurs terminaux pc, pda, téléphones, ... mais je ne sais pas à quel niveau je vais pouvoir utiliser le xml puis le xsl qui va le transformer, ni comment les créer.  
si tu peut m'aider FlorentG ça serait sympa.


Si t'es un bourrin, tu fais comme moi, et tu te contente de faire un contenu XHTML... Les mobiles WAP 2.0 gèrent bien l'XHTML, et même les CSS (mon motorola v500 et le Sharp de mon frangin utilisent la CSS définie pour le media handheld).

n°1214368
FlorentG
Unité de Masse
Posté le 04-10-2005 à 13:54:54  profilanswer
 

masklinn a écrit :

Intérêt des interfaces dans un langage à typage dynamique [:petrus dei]


En fait, c'est dans mon diagramme que j'utilise des interfaces. Pour être strict au point de vue design : utilisation de classes et d'interfaces quand il le faut. Après c'est le générateur de code PHP à partir de l'UML qui me fait sa tambouille...

n°1214414
omega2
Posté le 04-10-2005 à 14:30:54  profilanswer
 

masklinn a écrit :

Intérêt des interfaces dans un langage à typage dynamique [:petrus dei]

Dire ce que les classes correspondantes à cette interface sont censé avoir comme fonctions et/ou variables.
Une aide mémoire évolué en quelque sorte.

n°1214426
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 14:35:12  profilanswer
 

omega2 a écrit :

Dire ce que les classes correspondantes à cette interface sont censé avoir comme fonctions et/ou variables.
Une aide mémoire évolué en quelque sorte.


bis repetita: définir un protocole dans la doc sans s'emmerder à coder ça en dur donne strictement la même chose avec des couches en moins
 
(zêtes gentils mais je sais ce que sont les interfaces et comprend à quoi elles servent dans un langage à typage statique, je ne leur vois simplement aucune utilité dans un langage à typage dynamique, surtout faiblement typé comme PHP)

Message cité 1 fois
Message édité par masklinn le 04-10-2005 à 14:36:47

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1214438
skeye
Posté le 04-10-2005 à 14:39:24  profilanswer
 

masklinn a écrit :

bis repetita: définir un protocole dans la doc sans s'emmerder à coder ça en dur donne strictement la même chose avec des couches en moins
 
(zêtes gentils mais je sais ce que sont les interfaces et comprend à quoi elles servent dans un langage à typage statique, je ne leur vois simplement aucune utilité dans un langage à typage dynamique, surtout faiblement typé comme PHP)


à faire du joli code.:o


---------------
Can't buy what I want because it's free -
n°1214439
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 14:40:03  profilanswer
 

skeye a écrit :

à faire du joli code.:o


Non [:pingouino]
 
(au contraire même, puisqu'on doit caster - ne serait-ce qu'implicitement - notre objet de type A dans le type virtuel que génère notre interface B)

Message cité 1 fois
Message édité par masklinn le 04-10-2005 à 14:40:50

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1214440
omega2
Posté le 04-10-2005 à 14:40:08  profilanswer
 

Avec la description dans la doc, tu ne peux pas t'assurer que le programmeur qui passe derriére a bien tout fait comme il faut. Avec une interface, le compilo gueulera même si on utilise pas toutes les fonctions devant exister dans la classe. Du moins normalement, il gueule. (ma derniére utilisation d'une interface, c'était il y a un an)

n°1214443
skeye
Posté le 04-10-2005 à 14:41:30  profilanswer
 

masklinn a écrit :

Non [:pingouino]
 
(au contraire même, puisqu'on doit caster - ne serait-ce qu'implicitement - notre objet de type A dans le type virtuel que génère notre interface B)


hein?[:autobot]


---------------
Can't buy what I want because it's free -
n°1214445
masklinn
í dag viðrar vel til loftárása
Posté le 04-10-2005 à 14:41:56  profilanswer
 

omega2 a écrit :

Avec la description dans la doc, tu ne peux pas t'assurer que le programmeur qui passe derriére a bien tout fait comme il faut. Avec une interface, le compilo gueulera même si on utilise pas toutes les fonctions devant exister dans la classe. Du moins normalement, il gueule. (ma derniére utilisation d'une interface, c'était il y a un an)


Bordel de bite à cul, on parle pas de Java là, on parle de langages à typage dynamique, interprétés, le compilo ne fait pas de vérifications de types c'est tout juste si il fait une vérif de syntaxe [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  62  63  64  65  66  67

Aller à :
Ajouter une réponse
 

Sujets relatifs
Comment créer une architecture propre et fonctionelle...[Débutant] Webdesigner a besoin d'aide pour PHP
script PHP style explorateur windowsPHP et MS SQL
[PHP] envoi d'images qui se dimentionne et s'ajoute direct sur 1pageAfficher le temps utilisé pour générer une page PHP
[PHP] connexion bdd différente selon page locale ou sur serveur ?Afficher une image générée par un script PHP dans un PDF ?
Utilisation d'une variable en Flash depuis PHPErreur de forum PHP
Plus de sujets relatifs à : Model View Controller (MVC) - Architecture des applications PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR