web-dev-qa-db-fra.com

PHP Modèle avec codeignier

Je développe actuellement une application de site Web dans CodeDigniter et j'aimerais faire quelque chose dans PHP/codeigniter où je peux faire un modèle commun pour des sections distinctes du site Web. Je pensais que je garderait l'en-tête/le pied de page dans un fichier PHP distinct et les inclure séparément.

La chose dont je ne suis pas sûr est le contenu sous l'en-tête et au-dessus du pied de page. Cette application de site Web contiendra beaucoup de pages différentes, alors j'ai du mal à comprendre comment quel est le meilleur moyen de le faire.

4
JaPerk14

Je préfère généralement créer un fichier "mise en page" plutôt que de devoir inclure à la fois un en-tête et un pied de page sur chaque page. C'est plus flexible.

Voici un extrait de l'un de mes projets:

ob_start();
include '../views/'.$templateFile;
$pageContent = ob_get_clean();
include '../views/layouts/'.$layoutFile;

Tout ce que vous avez à faire est d'activer la mémoire tampon de sortie, incluez le modèle, puis appelez ob_get_clean() pour trouver le contenu de votre modèle et la mettre dans une variable. Une fois que c'est dans une variable, vous pouvez inclure votre fichier de mise en page principal, qui devrait echo $pageLayout Quelque part à l'intérieur.

par exemple.,

<html>
<head>
    <title>Your Site</title>
</head>
<body>
    <!-- header here -->
    <?= $pageContents ?>
    <!-- footer here -->
</body>
</html>

Cela dit, coder Sûlut Igniter a une sorte de modèle intégré, non? Je ne le connête pas. Edit: apparemment ce n'est pas . Genre de stupide vraiment; Avec la mise en cache, le coût de performance d'un joli moteur de modèles est négligeable.

3
mpen

J'ai toujours utilisé pour créer des systèmes avec codeigniter et cette bibliothèque de modèles: http://www.williamsconcepts.com/ci/codeigniter/libries/template/

C'est très simple à utiliser et il peut faire un meilleur travail que les techniques d'occasion telles que l'utilisation de N $ Ceci-> Load-> View ().

0
Andrius