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 :

Inclusion de fichiers


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Par défaut Inclusion de fichiers
    plop all.

    Je me retrouve face a une application (web) a l'architecture suivante :
    un controleur aiguille sur sur une action php (un peu a la struts) qui est une methode de ce dernier en fonction de l'url tapee. Par ex, taper http://serveur/index/toto va appeler la methode totoAction de la classe index definir dans index.php.
    Mon probleme est le suivant : ma classe index contient alors les includes de toutes les fonctions necessaires pour toute l'appli. Ca rame et bouffe une quantite astronomique de memoire (normal, mon fichier index.php contient grosso-merdo l'ensemble de l'appli, c'est bien la qu'est le probleme).
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    include_once("./application/views/viewHelper.class.php");
    include_once("./application/dao/connexionDao.class.php");
    ...
    autres include once.
    ...
    class IndexController extends Controller_Action {
    }
    Ma question est la suivante : existe-t-il un moyen (simple) de faire l'include de facon plus ou moins dynamique pour par exemple ne lire le fichier connexionDao que quand j'utilise cet objet et non pas a chaque fois que je passe par la racine de mon site ?
    D'avance merci.
    Fred

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    oui, PHP permet d'inclure des fichiers déclarant des fonctions ou des classes
    même à l'interrieur d'une fonction. Prenons un exemple d'une fonction qui
    te retournerai l'enregistrement d'un utilisateur depuis la base de donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function getUserData($user_id) {
      require_once("db-utils.php");
      require_once("user-utils.php");
      ...
    }
    Dans cet exemple, les fichiers servant à gérer la db et les utilisateurs
    ne sont pas chargé pour les requêtes qui n'appellerait pas getUserData

    Une autre approche pour palier au problème récurrent des actions d'une
    application. Au lieu d'avoir un fichier actions.php qui contiendrait plein de
    fonctions du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function deleteUser($user_id) {
      ...
    }
    function addUser($user) {
       ...
    }
    etc...
    Tu peux créer des petits fichiers, deleteUser.php, addUser.php et faire qqch
    dans ce gout là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $action = $_GET['action']; // attention aux attaques possibles
    require_once("actions/$action.php");
    dans le fichier deleteUser.php tu peux avoir qqch du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    require_once("db-util.php");
    $uid = $_GET['uid']; // filtrer les injections SQL !
    $sql = "DELETE FROM users WHERE user_id=$uid";
    mysql_query(...);
    Ainsi tu limites les chargements à ce qui est utile pour une requête.

Discussions similaires

  1. [debutant]inclusion de fichier .js !!!
    Par christophebmx dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2005, 15h16
  2. [Inclusion des fichiers] hierarchie
    Par Casp dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 09/07/2004, 13h43
  3. XML Schema et inclusions de fichiers XML
    Par monk31 dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 08/10/2003, 15h17
  4. Inclusion de fichier .h
    Par Tony49 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/11/2002, 12h10
  5. Inclusion de fichiers en IDL
    Par babou dans le forum CORBA
    Réponses: 10
    Dernier message: 30/07/2002, 17h47

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