2009-10-12 7 views
1

J'ai une classe Page() que je peux utiliser pour imprimer l'en-tête (layout) avec.Comment transmettre des variables/fonctions dans une fonction de classe pour l'en-tête de la mise en page?

Avec la fonction loadHeader ($ title) je veux pouvoir l'imprimer sur toutes mes pages. Le code réel de l'en-tête est stocké dans header.inc.php.

Maintenant, avant l'en-tête, je veux aussi que certaines variables (comme celle qui maintient une connexion à la base de données) soient transmises avec lui, de sorte que je puisse la saisir sur toutes mes pages et travailler avec.

La classe ressemble un peu à ceci (amincie sur pour éviter un gâchis):

class Page{ 
    //All vars here 
    function __construct(){ 
     //constructor code 
    } 
    function loadHeader(){ 
     $header = file_get_contents("header.inc.php"); 
     //Some editing of the parsed $header here 

     //Here I want certain variables to be passed along 
     return $header; 
    } 
} 

Le code exact que je veux faire passer en même temps que la fonction loadHeader() est:

session_start(); 
include("db.class.php"); //File which contains the db_class 
$db = new db_class; 
$db->connect(); 

J'ai essayé de le faire avec eval() et heredoc dans la fonction loadHeader() mais je n'arrive pas à le faire fonctionner. Je suis désespéré!

Enfin, pour vous donner un exemple sur la façon dont je veux que mes pages au travail:

<?php 
    include("page.class.php"); 
    $page = new page("Friends"); 
    $page->loadHeader(); 
?> 
Website content with database manipulation 

Répondre

1

Pourquoi ne pas mettre tout ce code dans le constructeur de la page?

Ou créez une classe singleton générique qui contiendra vos données globales, vos paramètres de configuration, etc.

Ou simplement ajouter un auto_prepend avec cette configuration, de sorte qu'il est automatiquement inclus dans une page, et vous pouvez l'oublier complètement?

Questions connexes