OVH Cloud OVH Cloud

"Template du pauvre" - Petit souci

4 réponses
Avatar
Christophe, elitemediacompany.com
Salut,

Afin de séparer la logique PHP du HTML, je veux faire un systeme de template
tout con (ne me parlez
pas de Smarty et autres, ca n'est pas ce que je recherche)

Pour la discussion, je fais simple, donc prenons un template :

<h1><?=$titre?></h1>
<p>Monsieur <?=$nom?> <?=$prenom?></p>
...etc.....

Disons que je veux faire une fonction toute bete :
rempliTemplate($titre, $nom, $prenom);

Soit dans ma page PHP d'appel :

rempliTemplate("Bonjour", "Dupont", "Jean");
require_once("templates/monfichiertemplate.php");

Le probleme c'est que si je fais un truc comme ca, je perds la portée de mes
variables, il faudrait donc que je fasse un retour de mes variables sous
forme d'un array peut etre, c'est la que ca peche un peu pour moi et je ne
veux pas mettre des "global" partout.

Que me conseillez vous ? Une petite classe ? Si oui, de quelle facon afin
que cela reste extremement simple ?

Christophe

4 réponses

Avatar
CrazyCat
Christophe, elitemediacompany.com wrote:
Le probleme c'est que si je fais un truc comme ca, je perds la portée de mes
variables, il faudrait donc que je fasse un retour de mes variables sous
forme d'un array peut etre, c'est la que ca peche un peu pour moi et je ne
veux pas mettre des "global" partout.
Que me conseillez vous ? Une petite classe ? Si oui, de quelle facon afin
que cela reste extremement simple ?


J'avoue qu'à ta place, j'aurais utilisé une (ou plusieurs) classes.
Ce qui donnerait:
<?
$user = new user();
$user->add_info("Dupont", "jean");
$user->add_msg("bonjour");
include "template";
?>

et dans ton template, fonctionne en appelant $user->nom, $user->prenom,
$user->message

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
stefen76
Salut,
Ta proposition m'intéresse, aurais-tu un exemple complet.
Merci.
Avatar
CrazyCat
stefen76 wrote:
Salut,
Ta proposition m'intéresse, aurais-tu un exemple complet.


heu non, je n'ai pas d'exemple sous la main, et quand bien même j'en
aurais un il ne serait pas adapté à ton utilisation.

Si tu n'as jamais utilisé de classes en php, il y a de très bonnes
références sur le web, et le fonctionnement est relativement simple.

Grosso-modo, il te faut une fonction d'initialisation (constructeur) et
ensuite des fonctions pour tes différents traitements.
Si on reprend mon exemple, tu vas avoir:
<?
class user {
$nom = '';
$prenom = '';
$message = '';
function user($nom,$prenom) {
// constructeur
$this->nom = $nom;
$this->prenom = $prenom;
}
function add_info($nom,$prenom) {
// on pourrait se passer de celle la
$this->user($nom,$prenom);
}
function add_msg($message) {
$this->message = htmlentities($message);
}
}
?>

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Christophe, elitemediacompany.com
J'avoue qu'à ta place, j'aurais utilisé une (ou plusieurs) classes.
Ce qui donnerait:
<?
$user = new user();
$user->add_info("Dupont", "jean");
$user->add_msg("bonjour");
include "template";
?>

et dans ton template, fonctionne en appelant $user->nom, $user->prenom,
$user->message


Ok, ca marche pas mal comme ca, et pas besoin de Smarty et autres, ca marche
tout aussi bien !

Merci

Christophe