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

 


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

Model View Controller (MVC) - Architecture des applications PHP

n°1224609
FlorentG
Posté le 17-10-2005 à 14:50:10  profilanswer
 

Reprise du message précédent :
Ah ben voilà quelque chose qui m'a l'air pas mal [:dawa]

mood
Publicité
Posté le 17-10-2005 à 14:50:10  profilanswer
 

n°1224613
FlorentG
Posté le 17-10-2005 à 14:54:43  profilanswer
 

J'ai décidé de faire pareil : un FrontController général qui instancie le bon PageController... Voir plusieurs PageController dans le cas de vues composites

n°1224616
KrisCool
“Verbeux„
Posté le 17-10-2005 à 14:57:15  profilanswer
 

Normal c'est moi qui l'ai fait [:dawao]
 
[:old_maxxxxxx]


Message édité par KrisCool le 17-10-2005 à 14:57:31

---------------
Loose Change Lies | Bars | Last.fm
n°1231338
skeye
Posté le 26-10-2005 à 11:07:16  profilanswer
 

Bon, question.:o
 
Mon machin actuel est une sorte de portail de services.
J'ai donc une appli principale (à la racine de mon serveur), dont le boulot est d'afficher une sorte de menu de services.
Puis j'ai un ensemble de services (sous /nomduservice/), qui ont besoin de certaines classes de l'appli principale, en leur ajoutant des méthodes.
 
Sachant que suivant le client je n'ai pas forcément tous les services d'activés, est-ce que vous mettriez plutot le code à ajouter directement dans la classe de l'appli principale, ou est-ce que vous créeriez (ce que je pense) une classe spécifique au service qui en dériverait?:o


---------------
Can't buy what I want because it's free -
n°1231343
nraynaud
lol
Posté le 26-10-2005 à 11:09:48  profilanswer
 

un système de plugins, normalement, rien ne t'oblige à ajouter des méthodes à des classes existantes.


---------------
trainoo.com, c'est fini
n°1231344
masklinn
í dag viðrar vel til loftárása
Posté le 26-10-2005 à 11:11:27  profilanswer
 

Une interface ou un protocole Service implémenté dans les différents services


Message édité par masklinn le 26-10-2005 à 11:12:16

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1231345
skeye
Posté le 26-10-2005 à 11:11:30  profilanswer
 

nraynaud a écrit :

un système de plugins, normalement, rien ne t'oblige à ajouter des méthodes à des classes existantes.


 
...donc je dérive les classes existantes.:o
C'est bien ce que je pensais faire, m'enfin demander ne mange pas de pain.[:klem3i1]


---------------
Can't buy what I want because it's free -
n°1231349
skeye
Posté le 26-10-2005 à 11:12:48  profilanswer
 

(typiquement, j'ai la classe d'accès à la base de données, qui est dans ce cas...[:dawa])


---------------
Can't buy what I want because it's free -
n°1231350
Xav_
The only one...
Posté le 26-10-2005 à 11:12:48  profilanswer
 

Ben je dirais que ça dépend quand meme du nombre de service...
perso, je sais que c'est assez brouillon, mais comme j'ai pas forcément bcp de classe, elle sont toutes défini (ainsi que mes fonctions) dans une seul page "fonctions.php", et les différent module font un include de cette seul et unique page...
 
mais c'est vrai que niveau structure, c'est quand meme un peu brouillon mon affaire  :pt1cable:


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1231355
nraynaud
lol
Posté le 26-10-2005 à 11:15:14  profilanswer
 

skeye a écrit :

...donc je dérive les classes existantes.:o


non, justement, c'est ce que j'entendais par "ajouter des méthodes à une classe" il doit y avoir un autre moyen.  
 
créer des "brèches" ("extension point" comme on dit chez les zulu de RDC), ces brèches sont caractérisées par des interfaces. Tes services implémentent ces interfaces et viennent les enregistrer dans ces brèches.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 26-10-2005 à 11:15:14  profilanswer
 

n°1231356
nraynaud
lol
Posté le 26-10-2005 à 11:16:04  profilanswer
 

c'est flou mais j'ai pas de détails non plus sur ton appli :o


---------------
trainoo.com, c'est fini
n°1231358
skeye
Posté le 26-10-2005 à 11:17:03  profilanswer
 

Xav_ a écrit :

Ben je dirais que ça dépend quand meme du nombre de service...
perso, je sais que c'est assez brouillon, mais comme j'ai pas forcément bcp de classe, elle sont toutes défini (ainsi que mes fonctions) dans une seul page "fonctions.php", et les différent module font un include de cette seul et unique page...
 
mais c'est vrai que niveau structure, c'est quand meme un peu brouillon mon affaire  :pt1cable:


 
Actuellement, 5...mais en constante augmentation.
 
Dans la version actuelle ya réinvention de la roue dans chaque ([:petrus75]), pour des raisons de  reprise de vieux code et pas le temps de faire mieux, mais là je profite d'avoir un peu de temps pour tout refaire proprement...j'ai refait l'appli principale (avec ajout d'une compatibilité avec les anciens services), et je commence à m'attaquer aux services...[:jagstang]
 
...en fait le problème d'avoir une grosse classe c'est surtout de parser systématiquement un gros paquets de fonctions dont on a de bonnes chances de jamais se servir...:o


---------------
Can't buy what I want because it's free -
n°1231363
nraynaud
lol
Posté le 26-10-2005 à 11:21:16  profilanswer
 

Citation :

.... et là je suis sorti de ma torpeur, j'étais en train de parler de bonnes pratiques d'architecture en ... PHP !!!


 
[:pingouino]
 
 

Citation :

... on a retrouvé des bouts de ses vêtements au pieds des falaise d'Etretat, et cet enregistrement chez lui ....


---------------
trainoo.com, c'est fini
n°1231366
skeye
Posté le 26-10-2005 à 11:22:18  profilanswer
 

nraynaud a écrit :

non, justement, c'est ce que j'entendais par "ajouter des méthodes à une classe" il doit y avoir un autre moyen.  
 
créer des "brèches" ("extension point" comme on dit chez les zulu de RDC), ces brèches sont caractérisées par des interfaces. Tes services implémentent ces interfaces et viennent les enregistrer dans ces brèches.


 
[:urd]
Objectivement je vois pas trop comment je pourrais faire ça, là...:/
Je crois que vais me contenter de dériver mes classes dans chaque service, ce sera relativement propre, et simple à faire...[:joce]
 
En fait je crois que je me suis mal exprimé...mon appli "menu" ne fait qu'afficher le menu, derrière les services sont indépendants (modulo la présence des variables de session créées par l'appli "menu" )...


---------------
Can't buy what I want because it's free -
n°1231367
skeye
Posté le 26-10-2005 à 11:22:40  profilanswer
 

nraynaud a écrit :

Citation :

.... et là je suis sorti de ma torpeur, j'étais en train de parler de bonnes pratiques d'architecture en ... PHP !!!


 
[:pingouino]
 
 

Citation :

... on a retrouvé des bouts de ses vêtements au pieds des falaise d'Etretat, et cet enregistrement chez lui ....



[:god]


---------------
Can't buy what I want because it's free -
n°1243093
KiK0o
Posté le 10-11-2005 à 12:45:49  profilanswer
 

skeye a écrit :

[:urd]
Objectivement je vois pas trop comment je pourrais faire ça, là...:/
Je crois que vais me contenter de dériver mes classes dans chaque service, ce sera relativement propre, et simple à faire...[:joce]
 
En fait je crois que je me suis mal exprimé...mon appli "menu" ne fait qu'afficher le menu, derrière les services sont indépendants (modulo la présence des variables de session créées par l'appli "menu" )...


 
Hello!
 
Je planche actuellement sur un MVC et je suis tombé sur ce thread.
 
Pour ton problème, je te conseillerais de te tourner vers les Patterns Decorator ou Strategy. Ca t'éviteras de devoir dériver tes classes à outrance tout en ajoutant de nouveaux comportements.
 
- - - - - - - - - - - - -
 
J'expose mon concept MVC à vos commentaires :
J'ai un FrontControler qui balance tout ce qui est statique dans le cas contraire, il delegue à un ApplicationControler (Decorator).
 
Mon Model (Composite) intégre un DAO et des ordres d'execution (Command). Le DAO s'occupe de tout les accès données (BDD, HTTPRequest, Files system, Files Remote, Bundles, etc...). Il est lié au Controler par Observer.
 
Un Datas Application est utilisé par le Model pour toutes les données de l'API.
 
Mon View (Composite) est lié au DatasApplication par Observer. La représentation est effectuée par Strategy.
 
Les évenements AppCtrl sont gérés par State. State met en place ses Models et Views par scripting. State execute les commandes du Model et la composition de la View.
 
Actuellement, le DAO n'est pas encore stable (dans le concept). Il aura bien un DatasTransfert, un factory pour les connecteurs, mais pour les requetes je cherche vers un Mediator.

n°1243201
nraynaud
lol
Posté le 10-11-2005 à 14:37:30  profilanswer
 

loto !


---------------
trainoo.com, c'est fini
n°1243204
masklinn
í dag viðrar vel til loftárása
Posté le 10-11-2005 à 14:39:29  profilanswer
 


 :non: Kamoulox :o


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

Ah, toi aussi...[:petrus75]


---------------
Can't buy what I want because it's free -
n°1243238
nraynaud
lol
Posté le 10-11-2005 à 15:03:48  profilanswer
 

ayé, j'ai retrouvé le mot que je cherchais : FOUTAISES !!!


---------------
trainoo.com, c'est fini
n°1243244
skeye
Posté le 10-11-2005 à 15:08:13  profilanswer
 

J'en ai quand même profité pour regarder vite fait Decorator...et je vois pas du tout l'intérêt, en fait![:dawa]


---------------
Can't buy what I want because it's free -
n°1243301
nraynaud
lol
Posté le 10-11-2005 à 15:43:25  profilanswer
 

moi non plus, j'ai jamais utilisé sciement. ça me saoule dans tout ce qui est wrapping de forwarder les messages.


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

skeye a écrit :

J'en ai quand même profité pour regarder vite fait Decorator...et je vois pas du tout l'intérêt, en fait![:dawa]


Ca sert juste à pas faire d'héritages quand on pige pas comment ça marche :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1243495
skeye
Posté le 10-11-2005 à 19:21:48  profilanswer
 

masklinn a écrit :

Ca sert juste à pas faire d'héritages quand on pige pas comment ça marche :o


ouais c'est bien ce que je dis...c'est un pattern pour les gens qui font du C, ça...[:petrus75]


---------------
Can't buy what I want because it's free -
n°1243502
masklinn
í dag viðrar vel til loftárása
Posté le 10-11-2005 à 19:25:27  profilanswer
 

skeye a écrit :

ouais c'est bien ce que je dis...c'est un pattern pour les gens qui font du C, ça...[:petrus75]


Nan, c'est aussi pour faire des concours de bite avec les collègues [:jar jar]
 
Exemple:

Citation :

Jubijub: Hey, j'ai réussi à coller 15 patterns du gof dans mon dernier projet [:jar jar]
KiK0o: Gros minable, j'ai pu en placer 19 sur les 24, et j'aurais réussi à en coller au moins deux de plus si jeanjean avait arrêté 5mn d'implémenter du code utile fonctionnel :o :o


[:dawa]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1243504
skeye
Posté le 10-11-2005 à 19:26:40  profilanswer
 

[:god]


---------------
Can't buy what I want because it's free -
n°1243682
KiK0o
Posté le 10-11-2005 à 23:33:07  profilanswer
 

nraynaud a écrit :

ayé, j'ai retrouvé le mot que je cherchais : FOUTAISES !!!


Argumentes STP
Merci

n°1243696
KiK0o
Posté le 11-11-2005 à 00:07:08  profilanswer
 

skeye a écrit :

J'en ai quand même profité pour regarder vite fait Decorator...et je vois pas du tout l'intérêt, en fait![:dawa]


C'est une manière simple et élégante pour rajouter des propriétés à une classe à la volée. De plus, on peut les combiner, et ça avec l'héritage, c'est pas possible, il faut créer autant de classes suplémentaires qui offriraient toutes les combinaisons (Bonjour la maintenance!).
Ca permet aussi de proposer plusieurs résultats d'un même objet sans se trimbaler autant d'objets qu'on a de vues (redondance, mémoire).
Ca soulage la classe des propriétés optionnelles.
 
Maintenant, je ne connais pas précisément ton besoin, mais pour ajouter des propriétés à un objet, Strategy ou Decorator sont cool.

n°1243722
KiK0o
Posté le 11-11-2005 à 01:38:38  profilanswer
 

masklinn a écrit :

Nan, c'est aussi pour faire des concours de bite avec les collègues [:jar jar]
 
Exemple:

Citation :

Jubijub: Hey, j'ai réussi à coller 15 patterns du gof dans mon dernier projet [:jar jar]
KiK0o: Gros minable, j'ai pu en placer 19 sur les 24, et j'aurais réussi à en coller au moins deux de plus si jeanjean avait arrêté 5mn d'implémenter du code utile fonctionnel :o :o


[:dawa]


Mwouai... J'utilise pas du pattern pour utiliser du pattern, mais bien parce que ça répond à un problème.  
 
Les patterns ne sont pas du code. Le code peut être une implémentation d'un pattern.
Depuis quand MVC est du code ?
Est-ce qu'un Singleton est inutile et non-fonctionnel ? Ca va dépendre à quoi tu le destine. Combien d'implémentation d'un Singleton peux tu entrevoir ? Language, codeur...
 
Quand tu cherches une solution à un problème, tu fais peut-être du pattern sans le savoir. Les patterns sont déjà une solution, c'est quand même domage de perdre son temps à en chercher une autre.
 
Y'a-t-il un Mediator dans l'assemblée pour que Monsieur comprenne ? Un Interpreter ?
 
Les patterns ne sont pas des révolutions, mais des solutions. D'ailleurs, la majorité des patterns viennent de Smalltalk, c'est pour dire si c'est une révolution...
 
Tu vois pas leurs utilités ? Possible et normal, moi aussi j'ai mis le temps et d'ailleurs je ne les maitrise pas tous encore. Mais une fois que t'en tiens un, tu peux plus t'en passer et t'en cherches un autre et encore... Merde alors, d'un coup y'a moins de problème !
 
KiK0o

n°1243738
masklinn
í dag viðrar vel til loftárása
Posté le 11-11-2005 à 03:03:00  profilanswer
 

KiK0o a écrit :

Mwouai... J'utilise pas du pattern pour utiliser du pattern, mais bien parce que ça répond à un problème.


Mais oui bien sûr [:dawa]
C'est sûrement pour ça que tu te sens obligé de préciser à chaque fois quel pattern tu implémentes, comme si on en avait quoi que ce soit à foutre [:dawa]

Citation :

Les patterns ne sont pas du code. Le code peut être une implémentation d'un pattern.


et alors?

Citation :

Depuis quand MVC est du code ?


et alors?

Citation :

Est-ce qu'un Singleton est inutile et non-fonctionnel ?


depuis que 90% des des utilisations des singletons sont stupides  

Citation :

Quand tu cherches une solution à un problème, tu fais peut-être du pattern sans le savoir.


Captain obvious to the rescue, t'en as d'autres des comme ça [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1243792
KiK0o
Posté le 11-11-2005 à 11:20:20  profilanswer
 

masklinn a écrit :

...
C'est sûrement pour ça que tu te sens obligé de préciser à chaque fois quel pattern tu implémentes, comme si on en avait quoi que ce soit à foutre [:dawa]
...


C'est quoi le titre de ce thread ? "MVC...Architecture..." ! Ca te saute pas à la gueule que MVC est un pattern ? Ca t'étouffes que les patterns soient utilisés en architecture logiciel ? Et bien changes de thread vieux ! Ta contribution à ce thread risque d'être NullObject.
 

Citation :

depuis que 90% des des utilisations des singletons sont stupides


GLORI ALLELUIA !!! This guy is the chosen one !
T'es jamais tombé sur le besoin d'une unique instance ?
 
Et STP, une dernière fois : ARGUMENTE.

Message cité 1 fois
Message édité par KiK0o le 11-11-2005 à 12:20:54
n°1248449
FlorentG
Posté le 18-11-2005 à 15:11:34  profilanswer
 

Un p'tit coucou. Ch'uis en plein dans mon framework, je viendrais poster des choses dès que c'est plus avancé

n°1248461
nraynaud
lol
Posté le 18-11-2005 à 15:18:52  profilanswer
 

KiK0o a écrit :

T'es jamais tombé sur le besoin d'une unique instance ?


les 2 denières fois, c'était pour "chaine vide" et "null", donc bon, ça pête pas 3 pattes à un canard ...


---------------
trainoo.com, c'est fini
n°1251425
KiK0o
Posté le 23-11-2005 à 12:53:21  profilanswer
 

nraynaud a écrit :

les 2 denières fois, c'était pour "chaine vide" et "null", donc bon, ça pête pas 3 pattes à un canard ...


lol
Bah c'est déjà ça. Si tu as repéré que pour ces objets une instance unique te suffisait en te garantissant l'intégrité de ses membres.
Perso, les classes systèmes, requete http, configuration client web, d'accès bdd sont des singletons. Une instance pour tout le monde !

n°1251443
nraynaud
lol
Posté le 23-11-2005 à 13:24:01  profilanswer
 

KiK0o a écrit :

lol
Bah c'est déjà ça. Si tu as repéré que pour ces objets une instance unique te suffisait en te garantissant l'intégrité de ses membres.
Perso, les classes systèmes, requete http, configuration client web, d'accès bdd sont des singletons. Une instance pour tout le monde !


Figure 1 : n'a pas compris le singleton.


---------------
trainoo.com, c'est fini
n°1251450
lorill
Posté le 23-11-2005 à 13:30:54  profilanswer
 

Argumente STP!

n°1251465
nraynaud
lol
Posté le 23-11-2005 à 13:43:33  profilanswer
 

Singleton c'est quand la valeur est intrinsèquement unique. Là c'est juste une économie de mémoire qu'il fait.


---------------
trainoo.com, c'est fini
n°1251470
lorill
Posté le 23-11-2005 à 13:48:07  profilanswer
 

nraynaud a écrit :

Singleton c'est quand la valeur est intrinsèquement unique. Là c'est juste une économie de mémoire qu'il fait.


je crois que tu as loupé quelquechose [:petrus75]

n°1251486
Puissance ​Athlon XP
Posté le 23-11-2005 à 14:02:55  profilanswer
 

nraynaud a écrit :

Singleton c'est quand la valeur est intrinsèquement unique. Là c'est juste une économie de mémoire qu'il fait.


 
Un pattern c'est une solution à un problème. Alors si son problème c'est de l'optimisation je vois pas en quoi c'est mal d'utiliser Singleton :o

n°1252143
KiK0o
Posté le 24-11-2005 à 11:37:00  profilanswer
 

nraynaud a écrit :

Singleton c'est quand la valeur est intrinsèquement unique. Là c'est juste une économie de mémoire qu'il fait.


Outre l'économie mémoire, il y a aussi l'économie d'execution à l'instanciation. La valeur unique, c'est l'objet lui-même.
 
Système : Pourquoi forcer mes clients à tester n fois le système sur lequel ils sont lancées et à mettre en place les bonnes méthodes ?
HTTP request : même chose, mon appli ne répond qu'à une requette à la fois, pourquoi l'analyser n fois ?
Client web : Idem, un seul client web à la fois. Une fois les présentations faites, pourquoi les lui re-demander n fois.
BDD : Itou (Même avec 30 seveurs derrière, avec ou sans persistance de connection)
 
La structure d'un Singleton c'est déjà une économie de mémoire et de construction. Et ca permet d'être homogène. De plus, on peut répercuter des modifications éventuelles à l'ensemble des clients très rapidement, un "super objet" (Pas de clonage SVP). Conclusion pour toutes relations [serveur]1-n[clients], le Singleton a le mérite d'exister.

n°1252733
souk
Tourist
Posté le 24-11-2005 à 22:28:07  profilanswer
 

avoir besoin d'une seule instance ca n'a rien a voir avec un singleton [:petrus75] tu peux partager l'instance entre tes objets sans avoir de singleton [:souk] c'est plus simple et plus propre

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  ..  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