Categories > TinyButStrong general (FR) >

Sous-template et Objet $this

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: dinoxyz
Date: 2006-12-03
Time: 02:04

Sous-template et Objet $this

Bonjour,
Je développe avec simpletest et quand je fais un objet pour mes testes mes sous-templates ne passe plus.

all_tests.php
---------------------------------
$test = new GroupTest('All tests');
$test->addTestFile('login_test.php');
$test->run(new TextReporter()) ? 0 : 1;

login_test.php (ultra simplifié)
-----------------------------------
<?php
require_once ('../classes/tbs_login.php');
?>

Je ne mets que la partie intéressante du fichier tbs_login.php
--------------------------------------------------------------
<?php
var_dump($this);
if (isset($this)) {
  // On est dans le mode Sous-modèle de TBS =>
    //   les variables sont toujours locales, pas globales,
    //   et l'objet TBS est référencé par la variable locale $this.
    $TBS = $this;
} else {
  // Ce sous-script peut aussi être exécuté en mode normal =>
  //  sont modèle correspondant sera affiché comme un modèle principal.
    include_once('../lib/tbs_class_php5.php') ;
    include_once('../util.php');
    $TBS = new clsTinyButStrong;
}
?>

On peut remarquer le var_dump($this) car il me retourne le résultat suivant object(GroupTest)#1 (4)
On peut bien voir que le code ne rentre jamais dans la partie else car j'ai un objet référent mais il n'est pas du bon type.
Bien sur dans le navigateur il affiche 'null' et tout passe comme prévu.
Comment faire pour garder cette facilité d'exécution tout en gardant les sous-templates indépendants.
Merci de vos réponses.
Dinoxyz
By: Skrol29
Date: 2006-12-03
Time: 03:44

Re: Sous-template et Objet $this

Salut,

Ouaip, c'est normal, tu appels ton sous-script TBS par un autre objet.
En remplacant
if (isset($this)) {
par :
if ( isset($this) and is_a($this'clstinybutstrong') ) {
ça devrait fonctionner.
By: dinoxyz
Date: 2006-12-03
Time: 11:07

Re: Sous-template et Objet $this

Merci, c'était ça mais j'ai corrigé ton code comme ceux-ci et maintenant ça marche nickel.

if ( isset($this) and is_a($this, 'clstinybutstrong') ) {