IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

MVC/POO : questions généralistes de débutant (théorie)


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Points : 117
    Points
    117
    Par défaut MVC/POO : questions généralistes de débutant (théorie)
    Bonjour

    Je souhaite développer un site sans l ambition d'avoir des millions de visites. Partout je lis que le MVC est LE modèle à utiliser.
    Je me dis qu'étant donné je débute, autant prendre de bonnes pratiques et m'orienter vers ce type de modèle et je me documente mais je ne trouve pas la réponse à certaines questions ou d'autres contradictoires. d'où mon post.

    Qu'à de plus le MVC par rapport à un autre modèle plus 'simple' pour un débutant (je ne connais même pas le type de modèle plus simple, j ai juste trouvé des comparaisons POO/Procédural)? De ce que je comprends il s agit de facilité de maintenance mais est-ce que cela ?

    J' ai aussi lu que ce modèle pouvait s avérer plus lent et pus gourmand qu un site développé en procédural. Est-ce vrai ?
    Aussi je n'arrive pas à comprendre l intérêt des Getter et setter parceque dans mon imaginaire de futur développeur on ne peut pas accéder au code... Comment est-il possible d accéder à une class depuis l extérieur du code, depuis un autre site ? Et si c est possible je ne comprends pas en quoi les getter et setter protègent dés lors où on a accédé à la fonction (je sais pas si j ai été très clair là)

    Question sécurité, j ai lu qu il ne fallait pas que le .htaccess redirige vers un index à la racine du site mais dans un répertoire distinct alors que tous les codes mvc que je trouve avec des tutos n'appliquent pas cela.


    Voila, j ai donc besoin de vos lumières...
    Merci

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Vu les questions, le mot débutant du titre n'est pas usurpé. Bienvenu au club, mais attention car ça peut durer 14 ans

    Néanmoins, je peux quand même apporter quelques réponses.

    On ne parle pas de modèle mais de Design Pattern et le plus simple, c'est de ne pas en utiliser du tout

    Les getters et setters de la POO ne servent pas à accéder au code mais aux données (en POO, on les appelle propriétés). Oui, ça participe à la protection, car dans un setter, on peut rajouter des contrôles (de type ou de valeur) et de ne faire l'écriture que si les contrôles sont OK.

    Ne rediriger que vers index.php est effectivement ce qu'on fait d'habitude (quand on fait du MVC, il y a un routeur et on le place dans index.php ) et les URLs ont la syntaxe http://localhost/www/App_Name/index.php?action=Action_Name (localhost si le serveur est local bien sûr)

    On ne peut pas comparer le MVC au code procédural ou à la POO, car on peut très bien faire du MVC en utilisant un des 2 styles de programmation.

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Citation Envoyé par MoiStéphane Voir le message
    Qu'à de plus le MVC par rapport à un autre modèle plus 'simple'
    Ça apporte plus de structure à ton projet. Ça évite de mélanger dans un même fichier le design , le code métier et le code plus basique.
    Quand on fait des site petits à moyen on peut s'en sortir sans trop de problème sans MVC pour peux qu'on soit bien organisé. Par contre sur de très gros projet , avec beaucoup d'intervenant c'est beaucoup plus difficile.
    Citation Envoyé par MoiStéphane Voir le message
    J' ai aussi lu que ce modèle pouvait s avérer plus lent et pus gourmand qu un site développé en procédural. Est-ce vrai ?
    Oui, mais ...
    Le MVC , implique plus de code , et des mécanique d'échange de données. Innévitablement c'est plus lent que la même chose en code Spaghetti. Mais aujourd'hui c'est pas vraiment perceptible. Les goulot d’étranglement en terme de performance étant souvent les accès à la bdd.
    Citation Envoyé par MoiStéphane Voir le message
    Aussi je n'arrive pas à comprendre l intérêt des Getter et setter parceque dans mon imaginaire de futur développeur on ne peut pas accéder au code... Comment est-il possible d accéder à une class depuis l extérieur du code, depuis un autre site ? Et si c est possible je ne comprends pas en quoi les getter et setter protègent dés lors où on a accédé à la fonction (je sais pas si j ai été très clair là)
    Quand tu travail tout seul dans ton coin , les getter et setter n'on effectivement que peut d'intérêt et tu pourrais passer tes variables publique que ca ne changerais pas grand chose. Maintenant si tu travail à plusieurs , comment empécher mon collègue d'utiliser une variable qu'il ne devrait pas ? Comment garantir des controles avant de changer sa valeur ? Autant de problématique auxquelles ont répond avec des visibilités de variable limité et des getter/setter.

    Citation Envoyé par MoiStéphane Voir le message
    Question sécurité, j ai lu qu il ne fallait pas que le .htaccess redirige vers un index à la racine du site
    Source ? Ce qu'on préconise en revanche c'est que seul un index.php soit accessible depuis le web et que tous les autres fichiers ne le soit pas. Ca évite tout risque d'attaque direct sur des fichiers qui n'ont pas besoin d'être exposés au web.


    Citation Envoyé par laurentSc Voir le message
    On ne parle pas de modèle mais de Design Pattern et le plus simple, c'est de ne pas en utiliser du tout
    Attention MVC n'est pas un design pattern. on peut en revanche considéré que c'est un GRASP (General Responsability Assignement Software Patterns)

  4. #4
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Points : 117
    Points
    117
    Par défaut
    Merci, tout est plus clair maintenant !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] question sur les interfaces
    Par root76 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/05/2006, 18h12
  2. [POO] Question POO
    Par shadeoner dans le forum Langage
    Réponses: 1
    Dernier message: 10/04/2006, 15h51
  3. [POO]Question sur les constructeurs
    Par Burinho dans le forum Langage
    Réponses: 16
    Dernier message: 08/04/2006, 22h56
  4. [POO] Question class php=>javascript
    Par jeff_! dans le forum Langage
    Réponses: 4
    Dernier message: 05/01/2006, 16h10
  5. question d'un débutant...
    Par chti_juanito dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/06/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo