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 :

Gérer les dépendances


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut Gérer les dépendances
    Bonjour

    Je sors de la première moitié de mon projet, le 'moteur' en Java, pour me plonger dams la deuxième partie, l'interface utilisateur en PHP.

    Conscient du potentiel bordélique de PHP (et de ma pomme), je tâche de faire les choses bien en utilisant de l'objet là où il faut, en suivant une convention de codage, etc.

    Mais j'ai du mal avec la gestions des dépendances entre mes scripts, mes objets etc :
    - En java avec Eclipse, un "Organize import" m'inclut tous les imports nécessaires.
    - En PHP avec Eclipse PDT, rien de tel. Je me renseigne, me fait un "autoLoader" pour qu'il charge tout seul les classes. Sauf qu'il faut bien l'inclure, et je commence à avoir des trucs comme ça qui se baladent un peu de partout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once '../../classAutoLoader.php';
    J'ai pensé faire un fichier "settings.php" avec des define du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('INCLUDES', 'portal/commons/includes.php');
    Mais on en revient au même, il faut inclure le fichier settings. Sans mentionner toutes les idées loufoques qui m'ont ensuite traversés l'esprit, venont en à la question :

    Comment peut-on automatiser simplement la gestion des includes & requires, surtout sans avoir à se demander ou sont les fichiers ?

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut,

    tu parles des autoloads ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    En tant que "bonne pratique potentielle" pour gérer les dépendances dans mon code, oui.

  4. #4
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Bonjour,

    Je ne te ferais pas un cours sur l'architecture MVC,
    je n'en suis pas capable.
    Cependant, si cela peut t'aider,
    voilà comment je procède
    dans les grandes lignes
    dans un esprit MVC.

    J'ai un seul point d'entrée pour mon appli :
    index.php

    dans ce script,
    je charge ce qui me sert de partout,
    include config.php
    include sgbd.php

    ...

    Puis j'inclus un gestionnaire d'actions
    include gererActions.php
    qui décide de l'action à exécuter
    en fonction des GET, des POST, ou autre.

    L'action choisie s'occupera des algos métiers, décidera de la vue à afficher, et préparera les données dynamiques de cette vue.

    Enfin j'inclus un gestionnaire de vues,
    include gererVues.php
    qui appelle la vue choisie.
    Cette vue est du html "saupoudré" d'echo PHP
    pour afficher les données préparées dans l'action.

    En m'organisant de la sorte,
    je n'ai pas de gros soucis avec les dépendances.

    Voilà, sans utiliser autoload, ni objet.
    Cette façon de faire est inspirée du Zend Framework (MVC)
    tutoriel
    qui lui les utilise. Donc si tu y tiens vraiment, tu sais ce qu'il te reste à faire.

    Mais peut-être que l'idée d'un point d'entrée unique (bootstrap) te suffit.

    Fred

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,
    Thes32 va sourire en te lisant
    Spécialiste qu'il est du sujet http://tahe.developpez.com/web/php/mvc/

    Mais en fait il faut bien répondre a ta premiére question,
    surtout complétée par la structure de tes pages que tu as trés clairement décrites.

    Saches que tout ceux qui ont une longue expérience , (et je vois que toi aussi tu plonge dedans ), structurent leurs application selon un schemat de ce type.

    Donc tu as 100% raison !

    Mais j' en viens a ta vrais question du début de ce fil

    Comment peut-on automatiser simplement la gestion des includes & requires, surtout sans avoir à se demander ou sont les fichiers ?
    Mais tu avais pércisé

    Je sors de la première moitié de mon projet, le 'moteur' en Java,
    Voila ce qui te trompe sans doute (si tu permet ), en effet, le PHP est un excelent outil, mais pas une machine adaptée a faire ce que ferait du "C" ou du JAVA ...

    Lorsque nous utilisons du PHP sur un site web, même aidé par des bases de données Mysql ... cela reste "modeste".

    En conséquence le nombre d'objets rangés dans des PHP que nous allons inclure selon nos besoins, reste assez modeste ...

    Alors j'aurais tendance a te dire OUI gardes ta structure "elle est trés PRO" mais non ne cherche pas a faire une usine a gaz , croyant clarifier voir simplifier ton organisation

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    Merci pour ces précieux conseils.

    @FoxLeRenard: Pas de soucis. Quand je dis que je sors de Java, c'est simplement pour souligner que je suis habitué à un langage objet avec une organisation naturellement (amha) plus carré que du php, et un EDI qui fait la moitié du taff ^^"
    Les objets, je m'en sers pour faire de l'encapsulation avant tout. Plutôt un objet utilisé 15 fois que 15 fois le même tableau représentant mes données avec le risque de se tromper qui va avec.
    Pas de soucis donc, je vais tâcher d'éviter l'usine à gaz.

    "rester simple" est relatif. Sur une idée de moi (comme je sens que je vais regretter ) on a convenu d'utiliser un moteur de template. Le but étant bien entendu de tracer une ligne de séparation claire entre la présentation et la mécanique.

    Donc, je récapitule un scénario lambda en intégrant cette nouvelle donnée, dites moi si je me trompe.

    1. Le client appelle le point d'entrée, "index.php"

    2. index.php fait sa série d'include_once (classes, sgbd...)

    3. gererAction.php effectue le traitement. La couche métier donc, avec peut être un design pattern du genre Stratégie pour standardiser l'appel aux actions et les rendre interchangeables ?

    4. gererVue.php passe par le moteur de template pour appeller sa vue.

    J'ai bon ?

Discussions similaires

  1. Gérer les dépendances Maven
    Par jeeland dans le forum Maven
    Réponses: 9
    Dernier message: 22/10/2013, 11h03
  2. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 20h58
  3. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 16h34
  4. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 10h44
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 14h39

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