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
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') ) {
|
|
|
Posting in progress.
Please wait...
|