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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] Réutilisation d'un design de page


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier

    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Points : 100
    Points
    100
    Par défaut [Configuration] Réutilisation d'un design de page
    Bonjour,

    J'ai developpé par le passé différents sites.
    Je définissais le "design" du site dans un seul fichier index.php(logo en haut à gauche, menu à gauche et en haut etc...).
    Je passais à cette page une id de page (index.php?id=1) et à partir de cette id j'allais dans ma base de donnée chercher différentes informations à propos du contenu de la page voulue (titre de la page, fichiers php à inclure pour traiter les données, fichiers contenu à inclure dans la pages, etc...)

    Ceci marche plutôt bien mais je ne suis pas satisfait à 100% (c'est parfois lent)

    donc j'aimerais savoir si certains d'entre vous pourraient me suggérer une alternative à cette façon de faire.

    Merci d'avance

    Ankou

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour,

    Ton design est interessant; pour accélerer tout ça, tu peux par exemple au démarrage du site, mettre en portée session un tableau contenant les correspondants id<->pages, ça eviterait de faire la requête à chaque fois !

    Dans l'absolu ce que tu as fais ressemble à l'utilisation d'un framework. Pour avoir une idée d'un framework assez utilisé, jète un oeil sur Fusebox.
    K

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Tu peux aussi aller voir le framework de Copix => http://www.copix.org

    Tu peux aussi stocker ta table de correspondance dans un fichier de configuration en PHP, ce qui t'évitera les requètes à la base de donnée...

    Tout dépend du volume d'informations stockées dans la base de donnée, et de la méthode utilisée pour en construire la page finale.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Une autre solution serait d'utiliser un cache.
    Reste à déterminer la validité du cache :
    - par une durée (2h, 1jour, ...)
    - plus intelligemment un cache est expiré lorsque les données qui le concerne ne sont plus d'actualité

  5. #5
    Membre régulier

    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Points : 100
    Points
    100
    Par défaut
    Merci des réponses.

    J'ai jeté un coup d'oeil rapide à fusebox et copix.

    Pour fusebox, il faut que je lise plus attentivement car j'ai pas encore tout saisi sur la façon de procéder.

    Copix a l'air sympa mais qu'en est il des performances?

    Actuellement dans ma base je dois avoir trois informations :
    title pour aller dans la balise <title>
    includeFile
    contentFile

    Ma page index.php ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <? requete base de donnée ?>
    <? include($includeFile);?>
    <html>
    <head>
    <title><? echo $title;?></title>
    </head>
    <body>
    <? include($contentFile);?>
    </body>
    </html>
    C'est très basique
    Mais j'ai jamais pris le temps d'envisager une autre solution.
    Là j'ai le temps de la réflexion donc j'en profite

    Ankou

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Copix est peut-etre un peu lourd, mais il a, à mon gout, le grand avantage de forcer le développeur à structurer son développement et son application et donc à plus réfléchir à ce qu'il fait... Après, il est surtout utile pour de grosse application utilisant le PHP plutot que pour des petits sites web.

    Sinon, si tu n'a effectivement que 4 colones dans ta table, tu gagneras déjà un peu en stockant le tout dans un tableau PHP dans un fichier de configuration...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $pages_conf = array(
      0 => array(
                'title' => 'mon titre',
                'include' => 'include.php',
                'content' => 'content.php'),
      1 => array(
                'title' => 'mon titre 2',
                'include' => 'include_2.php',
                'content' => 'content_2.php')
    );
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <? $id_page = 1; ?>
    <? include($pages_conf[$id_page]['include']);?>
    <html>
    <head>
    <title><? echo $pages_conf[$id_page]['title'];?></title>
    </head>
    <body>
    <? include($pages_conf[$id_page]['content']);?>
    </body>
    </html>

  7. #7
    Membre régulier

    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Points : 100
    Points
    100
    Par défaut
    Je pense que je vais essayer de regarder un peu plus en details Copix.

    Je me déciderai après en fonction du temps que j'aurais pour tester Copix et à assimiler la façon de s'en servir

    Sinon j'opterai surement pour la solution du fichier de config.

    Par contre, je pense que si j'utilise un fichier de config il vaut mieux que je le mette en cache ou en session. non?
    (le php n'est pas mon domaine de prédilection donc questions peut etre stupides )

  8. #8
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Désolé d'intervenir et peut-être de dévier (en tout cas faire une parenthèse). Mon hébergeur dit toujours qu'un accès fichier est plus long qu'un accès en BdD et j'aurais plutôt tendance à la croire.
    Donc si ankou2005 n'a besoin que d'un simple select, quelles solution seraient la plus rapide la BdD ou la session.
    Je ne compte pas le cache, je ne sais pas comment il est géré.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    En fait, tout dépend du serveur, de l'hebergeur etc...

    Certains hebergeurs ont des temps d'accès BdD horriblement lent (free ?) et il vaut mieux utiliser alors un accès fichier...

    La session est en général un fichier lui aussi (dans un répertoire temporaire de PHP bien souvent)

    Ensuite, le cache, et bien, c'est totalement autre chose, puisque l'idée est de "calculer" la page à afficher, et ensuite de l'enregistrer telle quelle dans un dossier pour ne pas à avoir à la recalculer la prochaine fois...

    Smarty (http://smarty.php.net) propose un très bonne gestion de cache justement...

Discussions similaires

  1. [2.2.2] [Designer] Affichage "Page n of m"
    Par meurwinn dans le forum BIRT
    Réponses: 13
    Dernier message: 13/10/2011, 11h37
  2. configuration data manager engine/designer
    Par lammiia dans le forum Cognos
    Réponses: 0
    Dernier message: 06/05/2008, 18h29
  3. Réponses: 8
    Dernier message: 10/01/2007, 21h10
  4. [Configuration] Pb sur le retour à la page précédente...
    Par Sophy75 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 13/04/2006, 11h28
  5. [configuration] pas de raccourci clavier et page JSP
    Par Erreip dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/11/2005, 12h14

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