Structure d'une application mauvaise ?

Petit nouveau ! | 1 Messages

15 août 2008, 12:27

Bonjour tout le monde,


Je suis juste un initié de PHP et j'aimerais avoir quelques avis de la part des grands gourous que l'on peu croiser ici... J'ai fait un peu le tour sur le forum mais je n'arrive pas à trouver ce que je cherche donc j'ai posté ici un nouveau topic. J'espère ne pas me faire égorger par un modo dés mon premier post ;)

Mon premier "problème" est lié à l'utilisation objet de PHP. Ensuite je me pose des questions sur le choix de fonctionnement et de hiérarchisation de mon application...

Tout d'abord voici les technologies utilisé : Apache - PHP5 - MySQL5 - Moteur de Template Smarty

- Le 1er problème –

Je ne sais pas si j'utilise bien la notion d'objet, mais en général, les objets que je créer en PHP sont liés à une fonctionnalité de mon application... Par exemple pour une classe News, on y trouvera les méthodes pour récupérer, insérer, modifier, supprimer les news dans ma BDD. Idem pour une classe utilisateur, une classe authentification pour gérer l'authentification des utilisateurs etc. En fait j'ai un peu de mal à dissocier par exemple si je dois créer une classe fichier (fopen, fwrite etc.) et une classe upload (move_uploaded_file etc.) ou si je dois intégrer les méthodes de la classe upload dans la classe fichier ?

- Le 2eme problème –

Bien sur, je veux utiliser la méthode MVC pour structurer mon application, mais j’aimerais avoir vos avis par rapport à ce que je fais d’habitude…

Voici la structure :

../www

./img
./inc --> toute les classes.php
./lib --> librairie comme smarty
./module --> fichiers php qui gère les différentes actions pour chaque module
./script
./style
./template --> les templates que j'affiche par module
./template/module1

./template/module1/module1.form.tpl
./template/module1/module1.index.tpl

./template/index.tpl

./template_c
./index.php

Mon fonctionnement :

Mon application ne tourne que sur le fichier index.php. Les modules sont incluent en fonction du $_REQUEST["module"]. Dans chaque module, même système pour les actions avec $_REQUEST["action"]… et c’est ici que récupère les données des formulaires et que j’instancie et travaille avec mes objets… Ensuite je renvois les résultats et affiche les templates smarty.

Malheureusement je trouve que c’est assez lourd à mettre en place et je ne sais pas si ce que je fais est bien enfin je veu dire si il n’y a pas plus simple en fait… Car ensuite pour la gestion des droits par profil je dois vérifier pour chaque action de chaque module si l’utilisateur est autorisé !

Enfin bref, peut être que je me complique mais si quelqu’un a une idée ou un exemple de comment il travail et gère son application plus simplement, faite moi signe ;)

Merci

ViPHP
ViPHP | 5924 Messages

15 août 2008, 12:41

Je ne vais pas m'attarder sur le sujet mais de la manière dont tu présentes ton architecture, cela me semble très bien conçu. Tu n'as peut être pas une solution parfaite, mais tu es sur la bonne voie.
Concernant ton problème objet, les fonctions d'upload ne doivent, pour moi, pas être dans la classe fichier, mais après cela dépend, tu peux soit les mettre dans une classe complètement à part s'il n'y a aucun rapport entre les deux, soit, si elles partagent des méthodes, utiliser une relation d'héritage entre les deux…

ViPHP
ViPHP | 4674 Messages

16 août 2008, 19:47

Hey :),

À propos de l'architecture, voici comment je procéderais (à partir de la tienne) :

Code : Tout sélectionner

www/ Application Controller Model View (ou Template) Library Smarty … HomeMade Fichier.php Routeur.php Etc.php Webroot Media Image Header.png Video Presentation.mov Css Layout.css Asset Script Mootools.js index.php
Voilà comment je partirais. Mais bon, chacun fait comme il faut. J'ai l'habitude de travailler avec ce genre d'architecture car modulable. Je peux ajouter des parties dans l'application, et même avoir plusieurs applications qui se partagent les mêmes bibliothèques. C'est très pratique.

N'oublies pas qu'il faut une logique pour le nommage et les emplacements.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).