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

 


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

Model View Controller (MVC) - Architecture des applications PHP

n°1488452
rufo
Pas me confondre avec Lycos!
Posté le 08-12-2006 à 11:22:36  profilanswer
 

Reprise du message précédent :
Selon moi, le contrôleur intercepte les actions demandées par l'utilisateur. Si celui-ci n'a pas les droits, le contrôleur, qui normalement aurait dû appeler l'action demandée, peut très bien en appeler une autre : "action refusée". Cette action renvoie donc une vue qui affiche, par ex, un message d'erreur.

mood
Publicité
Posté le 08-12-2006 à 11:22:36  profilanswer
 

n°1488472
_synapse_
Posté le 08-12-2006 à 11:55:33  profilanswer
 

Ce qui est bien c'est que vous n'arrivez pas vous même à vous y retrouver, si vous bossez en entreprise, je plains ceux qui vont devoir un jour ou l'autre reprendre le projet, y'à du suicide dans l'air  :o  :sweat:

n°1488488
Djebel1
Nul professionnel
Posté le 08-12-2006 à 12:38:56  profilanswer
 

je vois pas où on s'y retrouve pas, tout ceux qui apportent des réponses sur ce post convergent tous vers la même architecture

n°1488489
FlorentG
Posté le 08-12-2006 à 12:40:10  profilanswer
 

Moi pour chaque URL je cherche un Controller et une Action. Une fois trouvée, suffit de tester si y'a les droits. Si ok -> exécution de l'action. Si pas ok -> Page de login ou page "accès refusée". C'est donc un reroutage en cas de pas-le-droit.
 
Facile de s'y retrouver :D

n°1488525
Dj YeLL
$question = $to_be || !$to_be;
Posté le 08-12-2006 à 13:33:53  profilanswer
 

En ce qui me concerne, en haut de mes pages qui ont besoin d'une authentification pour être vue (peut importe le level, il faut juste être loggué) j'ai un truc du genre :
 
$user->needLogin();
 
Ça enregistre la page demandée dans une variable de session, redirige l'utilisateur vers la page de login, si l'utilisateur se loggue correctement ça le renvoi vers la page qu'il voulait visiter.
 
S'il y a besoin d'un level 'minimum', c'est un
$user->needLevel('moderator');
 
Si c'est pour un/des level(s) bien précis :
$user->needLevel('moderator', true);
$user->needLevel(array('moderator', 'admin'), true);
 
Enfin par exemple :D


---------------
Gamertag: CoteBlack YeLL
n°1488543
leflos5
On est ou on est pas :)
Posté le 08-12-2006 à 13:51:05  profilanswer
 

Dj YeLL a écrit :

En ce qui me concerne, en haut de mes pages qui ont besoin d'une authentification pour être vue (peut importe le level, il faut juste être loggué) j'ai un truc du genre :
 
$user->needLogin();
 
Ça enregistre la page demandée dans une variable de session, redirige l'utilisateur vers la page de login, si l'utilisateur se loggue correctement ça le renvoi vers la page qu'il voulait visiter.
 
S'il y a besoin d'un level 'minimum', c'est un
$user->needLevel('moderator');
 
Si c'est pour un/des level(s) bien précis :
$user->needLevel('moderator', true);
$user->needLevel(array('moderator', 'admin'), true);
 
Enfin par exemple :D


Vu que ça semble orienté vers des groupes types d'utilisateurs genre forum, comment fais-tu si tu dois autoriser ponctuellement ou définitivement, un utilisateur dans un groupe n'ayant pas les droits :??: :whistle:

n°1488545
FlorentG
Posté le 08-12-2006 à 13:51:59  profilanswer
 

Ouais, manque une certaine gestion là :D

n°1488551
rufo
Pas me confondre avec Lycos!
Posté le 08-12-2006 à 13:58:04  profilanswer
 

Dj YeLL a écrit :

En ce qui me concerne, en haut de mes pages qui ont besoin d'une authentification pour être vue (peut importe le level, il faut juste être loggué) j'ai un truc du genre :
 
$user->needLogin();
 
Ça enregistre la page demandée dans une variable de session, redirige l'utilisateur vers la page de login, si l'utilisateur se loggue correctement ça le renvoi vers la page qu'il voulait visiter.
 
S'il y a besoin d'un level 'minimum', c'est un
$user->needLevel('moderator');
 
Si c'est pour un/des level(s) bien précis :
$user->needLevel('moderator', true);
$user->needLevel(array('moderator', 'admin'), true);
 
Enfin par exemple :D


 
 
tous ces droits là, je les ai mis dans un fichier de conf. A chaque action est affecté des droits à différents niveaux : utilisateur, groupe, tout le monde, rôle fonctionnel (genre, si tel user est l'auteur de cet article alors ok)

n°1488552
Dj YeLL
$question = $to_be || !$to_be;
Posté le 08-12-2006 à 13:58:04  profilanswer
 

leflos5 a écrit :

Vu que ça semble orienté vers des groupes types d'utilisateurs genre forum, comment fais-tu si tu dois autoriser ponctuellement ou définitivement, un utilisateur dans un groupe n'ayant pas les droits :??: :whistle:


 
C'est à dire ? Je crois que j'ai du mal à bien saisir la question ... si un utilisateur n'est pas modérateur, pour devrait-il avoir accès aux fonctions de modération (même temporairement...) ?


---------------
Gamertag: CoteBlack YeLL
n°1488555
rufo
Pas me confondre avec Lycos!
Posté le 08-12-2006 à 14:01:15  profilanswer
 

ben genre, un utilisateur doit faire ponctuellement une opération pour laquelle il n'a pas les droits admin, et l'admin, comme il est un peut feignant, plutôt que de faire l'opération à la place de l'utilisateur, préfère lui donner temporairement les droits :D

mood
Publicité
Posté le 08-12-2006 à 14:01:15  profilanswer
 

n°1488562
Dj YeLL
$question = $to_be || !$to_be;
Posté le 08-12-2006 à 14:06:49  profilanswer
 

rufo a écrit :

ben genre, un utilisateur doit faire ponctuellement une opération pour laquelle il n'a pas les droits admin, et l'admin, comme il est un peut feignant, plutôt que de faire l'opération à la place de l'utilisateur, préfère lui donner temporairement les droits :D

 

Euh, ben direction panneau d'admin -> Modifier les droits d'un utilisateur ->
[x] Edition
[ ] Suppression
[x] Ajoute
[x] Modération
[ ] Administration

 

(par exemple)

Message cité 1 fois
Message édité par Dj YeLL le 08-12-2006 à 14:07:24

---------------
Gamertag: CoteBlack YeLL
n°1488563
leflos5
On est ou on est pas :)
Posté le 08-12-2006 à 14:07:04  profilanswer
 

Dj YeLL a écrit :

C'est à dire ? Je crois que j'ai du mal à bien saisir la question ... si un utilisateur n'est pas modérateur, pour devrait-il avoir accès aux fonctions de modération (même temporairement...) ?


Faut pas voir ça comme avoir accès à l'ensemble de fonctionnalités réservées à un groupe, mais comme une petite exception à la règle générale :)
 
Petit exemple: on considère un forum sur lequel l'auteur peut éditer son message pendant 24h (pour corriger des fautes mais empêcher de modifier le fil de la discussion 3 semaines plus tard :d ). Pour des raisons pratiques genre édition d'un sommaire du sujet, l'auteur pourrait avoir le droit d'éditer sans contrainte son premier post :spamafote: Dans ce cas, les modérateurs peuvent le faire par défaut mais faut pouvoir donner ce droit à l'auteur.

n°1488566
Dj YeLL
$question = $to_be || !$to_be;
Posté le 08-12-2006 à 14:08:48  profilanswer
 

leflos5 a écrit :

Faut pas voir ça comme avoir accès à l'ensemble de fonctionnalités réservées à un groupe, mais comme une petite exception à la règle générale :)
 
Petit exemple: on considère un forum sur lequel l'auteur peut éditer son message pendant 24h (pour corriger des fautes mais empêcher de modifier le fil de la discussion 3 semaines plus tard :d ). Pour des raisons pratiques genre édition d'un sommaire du sujet, l'auteur pourrait avoir le droit d'éditer sans contrainte son premier post :spamafote: Dans ce cas, les modérateurs peuvent le faire par défaut mais faut pouvoir donner ce droit à l'auteur.


 
Ah oui non mais tout à l'heure je parlais juste de l'accès global à une page ... ensuite les fonctions autorisées ou non à l'intérieur de cette page sont gérées différemment...


---------------
Gamertag: CoteBlack YeLL
n°1488567
leflos5
On est ou on est pas :)
Posté le 08-12-2006 à 14:09:16  profilanswer
 

Dj YeLL a écrit :

Euh, ben direction panneau d'admin -> Modifier les droits d'un utilisateur ->
[x] Edition
[ ] Suppression
[x] Ajoute
[x] Modération
[ ] Administration
 
(par exemple)


Mais vu le code que tu proposes ça semble pas clair :d Donc tes "moderator", "admin" ... sont des niveaux de droit :??: Et pas des groupes :??:  :heink:

n°1488568
leflos5
On est ou on est pas :)
Posté le 08-12-2006 à 14:10:33  profilanswer
 

Dj YeLL a écrit :

Ah oui non mais tout à l'heure je parlais juste de l'accès global à une page ... ensuite les fonctions autorisées ou non à l'intérieur de cette page sont gérées différemment...


Ah ok :d
 
PS: c'est horrible les discussions décalées :d

n°1488581
Dj YeLL
$question = $to_be || !$to_be;
Posté le 08-12-2006 à 14:19:17  profilanswer
 

Bon de toute façon tout ceci est à peine à l'état d'ébauche.
 
Le seul truc qui est sûr c'est qu'il y aura un needLogin() pour les pages qui nécessite une authentification. Après pour les needLevel('admin') par exemple ce n'était qu'un exemple. D'ailleurs j'évite d'utiliser des terme (comme "admin", "moderator" etc... vu que le jour où on veut changer on est bon à se retaper toutes les pages), je préfère centraliser.


---------------
Gamertag: CoteBlack YeLL
n°1488877
skylight
Made in France.
Posté le 08-12-2006 à 20:33:25  profilanswer
 

Tiens j'ai une question pour les vues :
Imaginons le template suivant :

Code :
  1. <div class="user">
  2.     <span class="name"><?php echo $user->name ?></span>
  3.     <span class="id"><?php echo $user->id ?></span>
  4. </div>
 

Si je veux inclure un truc conditionnel, on va dire que c'est l'administrateur du site, qu'ils possède des droits particuliers, et qu'il est déjà loggué sur la page.

 

J'ai juste à faire ceci ? :

 
Code :
  1. <div class="user">
  2.     <span class="name"><?php echo $user->name ?></span>
  3.     <span class="id"><?php echo $user->id ?></span>
  4.     <?php ($user->level > 6) ? "<span><a href="toto">Del</a></span>" : "";?>
  5. </div>
 


Ou alors je dois me farcir un autre template séparé :??:
J'veux dire : est-ce que si je fous des conditions dans mon template, c'est toujours considéré comme un template ?
Ou je dois faire mes tests avant, mais si c'est le cas, comment définir exactement ce qui va être affiché ?

 

Message cité 2 fois
Message édité par skylight le 08-12-2006 à 20:33:49
n°1488926
Dj YeLL
$question = $to_be || !$to_be;
Posté le 08-12-2006 à 23:39:39  profilanswer
 

skylight a écrit :

Tiens j'ai une question pour les vues :  
Imaginons le template suivant :  

Code :
  1. <div class="user">
  2.     <span class="name"><?php echo $user->name ?></span>
  3.     <span class="id"><?php echo $user->id ?></span>
  4. </div>


 
Si je veux inclure un truc conditionnel, on va dire que c'est l'administrateur du site, qu'ils possède des droits particuliers, et qu'il est déjà loggué sur la page.
 
J'ai juste à faire ceci ? :
 

Code :
  1. <div class="user">
  2.     <span class="name"><?php echo $user->name ?></span>
  3.     <span class="id"><?php echo $user->id ?></span>
  4.     <?php ($user->level > 6) ? "<span><a href="toto">Del</a></span>" : "";?>
  5. </div>


 
 
Ou alors je dois me farcir un autre template séparé :??:
J'veux dire : est-ce que si je fous des conditions dans mon template, c'est toujours considéré comme un template ?  
Ou je dois faire mes tests avant, mais si c'est le cas, comment définir exactement ce qui va être affiché ?


 
Normalement un moteur de template doit gérer les conditions, donc pas de php.
 
Un truc du genre
 

Code :
  1. <div class="user">
  2.     <span class="name"><?php echo $user->name ?></span>
  3.     <span class="id"><?php echo $user->id ?></span>
  4.     {{IF VAR->USERLEVEL >6}}
  5.         <span><a href="toto">Del</a></span>
  6.     {{ENDIF}}
  7. </div>


---------------
Gamertag: CoteBlack YeLL
n°1488949
nORKy
Grmmph...
Posté le 09-12-2006 à 08:12:30  profilanswer
 

concernant les droits, moi, j'ai une autre idée
Disons que nous avons un 'plugin' ou bien une classe de service appelé Auth.
Cette classe de service statique, permet de checker ou de modifier certains droits.
Elle possède son propre model (et donc 1 bdd, ou fichier, ..), mais pas de vue.
Elle utilise un identifiant (peut importe ce qu'il représente), un sujet et un droit (optionnel)
Par exemple, l'identifiant '12', le sujet 'admin'. Ou bien l'identifiant '42', le sujet 'news' et la droit 'edit'. Ces droits on n'importe qu'elle valeur, soit true, false ou bien une chaine, une date...
 
Avec ca, les actions n'ont qu'a demandé a la classe de service ce dont elles ont besoin
Auth::IsTrue(12, 'news', 'edit');
Au actions d'adapter leurs réponses

n°1489113
vanadium
N° Atomique : 23
Posté le 09-12-2006 à 19:40:57  profilanswer
 

Pour ceux qui seraient interressés, je viens de lancer un petit projet personnel en PHP : un script d'annuaire avec système d'extensions et de thèmes, basé sur l'architecture MVC . Rendez-vous sur le site dans la signature pour télécharger le script.
 
Le script est en Release Candidate, il se peut très fortement qu'il y ait encore quelques bugs, soyez donc indulgents. ;)

Message cité 1 fois
Message édité par vanadium le 09-12-2006 à 20:06:59
n°1489120
skeye
Posté le 09-12-2006 à 19:59:44  profilanswer
 

ce topic n'es tpas du tout là pour faire ta pub.:o

n°1489121
vanadium
N° Atomique : 23
Posté le 09-12-2006 à 20:07:32  profilanswer
 

Ce n'est pas de la pub, c'est pour donner un exemple d'application concret de l'architecture MVC. :)

n°1489202
FlorentG
Posté le 10-12-2006 à 14:11:03  profilanswer
 

skylight a écrit :

J'ai juste à faire ceci ? :
 

Code :
  1. <div class="user">
  2.     <span class="name"><?php echo $user->name ?></span>
  3.     <span class="id"><?php echo $user->id ?></span>
  4.     <?php ($user->level > 6) ? "<span><a href="toto">Del</a></span>" : "";?>
  5. </div>



Exactement comme ça :jap: Vu que tu utilises PHP comme langage de template, vraiment pas de problème. Moi j'en ai plein des conditions, des foreach, etc.

n°1489242
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-12-2006 à 16:21:08  profilanswer
 

FlorentG a écrit :

Exactement comme ça :jap: Vu que tu utilises PHP comme langage de template, vraiment pas de problème. Moi j'en ai plein des conditions, des foreach, etc.


 
Ah ben dans ce cas alors oui :jap:


---------------
Gamertag: CoteBlack YeLL
n°1489251
bricebours​ica
Tout est possible...
Posté le 10-12-2006 à 17:46:22  profilanswer
 

vanadium a écrit :

Pour ceux qui seraient interressés, je viens de lancer un petit projet personnel en PHP : un script d'annuaire avec système d'extensions et de thèmes, basé sur l'architecture MVC . Rendez-vous sur le site dans la signature pour télécharger le script.
 
Le script est en Release Candidate, il se peut très fortement qu'il y ait encore quelques bugs, soyez donc indulgents. ;)


 
Je crois avoir vu ce message déj) plusieurs fois...  :pfff:


---------------
Brice de www.boursica.com
n°1489523
skylight
Made in France.
Posté le 11-12-2006 à 13:26:31  profilanswer
 

FlorentG a écrit :

Exactement comme ça :jap: Vu que tu utilises PHP comme langage de template, vraiment pas de problème. Moi j'en ai plein des conditions, des foreach, etc.


 
 
OK.
Vu que mon but est de n'utiliser aucun moteur de templates hormis PHP.. Ca tombe bien.
En gros, le traitement de toutes les variables est fait dans le modèle/controlleur, et le template, lui, dispose de toutes les informations pour afficher et sélectionner les blocs à afficher/ne pas afficher.
 

n°1489524
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-12-2006 à 13:31:43  profilanswer
 

skylight a écrit :

OK.
Vu que mon but est de n'utiliser aucun moteur de templates hormis PHP.. Ca tombe bien.
En gros, le traitement de toutes les variables est fait dans le modèle/controlleur, et le template, lui, dispose de toutes les informations pour afficher et sélectionner les blocs à afficher/ne pas afficher.


 
Bienvenue :D


---------------
Gamertag: CoteBlack YeLL
n°1489868
vanadium
N° Atomique : 23
Posté le 11-12-2006 à 22:15:04  profilanswer
 

Qu'est ce que tu entends par utiliser le moteur de templates PHP ?
Si c'est simplement des echo pour afficher du html, je trouve ça crade, surtout quand ça vient au milieu de la logique algorithmique du code. ^^

n°1489893
skylight
Made in France.
Posté le 11-12-2006 à 23:13:30  profilanswer
 

Et c'est pour ça que le MVC a été inventé [:totozzz]

n°1489940
FlorentG
Posté le 12-12-2006 à 08:46:38  profilanswer
 

vanadium a écrit :

Qu'est ce que tu entends par utiliser le moteur de templates PHP ?
Si c'est simplement des echo pour afficher du html, je trouve ça crade, surtout quand ça vient au milieu de la logique algorithmique du code. ^^


Nanan, c'est l'inverse : une page HTML avec quelques echos, conditions et boucles dedans

n°1489976
vanadium
N° Atomique : 23
Posté le 12-12-2006 à 09:55:48  profilanswer
 

skylight a écrit :

Et c'est pour ça que le MVC a été inventé [:totozzz]


 
Tout à fait d'accord  :jap:

n°1494405
Fused
Posté le 20-12-2006 à 17:15:44  profilanswer
 

J'ai une question qui est plus de l'ordre de la syntaxe que de l'archi mais je vais pas créer un topic pour une question à 2 sous:
 
Voilà je vois souvent sur des scripts echo" ou echo'.
Quel est la syntaxe juste ou les 2 sont elles indentiques?
Sur le manuel ils utilisent " mais ça change tellement souvent que je sais pas quoi en penser.

n°1494410
skeye
Posté le 20-12-2006 à 17:17:32  profilanswer
 

Les deux sont justes. Par contre entre "" les variables sont interprétées, tandis qu'entre '' non.


---------------
Can't buy what I want because it's free -
n°1494425
Fused
Posté le 20-12-2006 à 17:32:25  profilanswer
 

ok merci.
si on fait un echo" <td align='middle'.....";
C'est juste? si on a des variables dedans... mais en théorie en html on met des "" pour les propriétés.

n°1494439
skylight
Made in France.
Posté le 20-12-2006 à 17:55:37  profilanswer
 

Tu devrais plutôt faire :
echo '<td align="middle".... ' ,$variable_a_mettre_ici_si_tu_en_a,'</td>';

 

C'est plus clean, tu sais où sont tes variables dans ton code.

Message cité 1 fois
Message édité par skylight le 20-12-2006 à 17:56:05
n°1494577
nORKy
Grmmph...
Posté le 20-12-2006 à 22:46:29  profilanswer
 

skylight a écrit :

Tu devrais plutôt faire :
echo '<td align="middle".... ' ,$variable_a_mettre_ici_si_tu_en_a,'</td>';
 
C'est plus clean, tu sais où sont tes variables dans ton code.


 
Je rebondis pour demander sur echo : pour concaténer une chaine : virgule ou point ??
echo '<td align="middle".... ' ,$variable_a_mettre_ici_si_tu_en_a,'</td>';
ou
echo '<td align="middle".... ' . $variable_a_mettre_ici_si_tu_en_a . '</td>';
 

n°1494579
Dj YeLL
$question = $to_be || !$to_be;
Posté le 20-12-2006 à 23:03:00  profilanswer
 

Les 2


---------------
Gamertag: CoteBlack YeLL
n°1494587
KangOl
Profil : pointeur
Posté le 20-12-2006 à 23:25:08  profilanswer
 

non, pour concatener, c'est le point
cependant, la "fonction" echo accepte plusieurs parametres spéarés par des virgules...
dans ce cas, il n'y a pas de concaténation, donc un (leger) gain de performance...

n°1494643
nORKy
Grmmph...
Posté le 21-12-2006 à 09:28:50  profilanswer
 

un gain de performance ? Plus on passe de paramètre à une fonction, plus on perd en perf non ?

n°1494645
skeye
Posté le 21-12-2006 à 09:29:35  profilanswer
 

nORKy a écrit :

un gain de performance ? Plus on passe de paramètre à une fonction, plus on perd en perf non ?


non.
Enfin tu perds puisqu'il y a 2 chaines à afficher, mais tu gagnes parce-qu'il n'y a pas à concaténer les 2 avant affichage...:o


---------------
Can't buy what I want because it's free -
n°1494779
Chaos Inte​stinal
Posté le 21-12-2006 à 11:59:07  profilanswer
 

En fait, c'est un peu de l'enculage de mouche, on parlera surtout d'élégance et non de performances :o

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  14  15  16  ..  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-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)