[TYPO3-UG Dutch] class met global waardes beoordelen. goed opgezet of kan het slimmer/beter?
W.S.M. Perquin [YniVerse]
perquin at yniverse.nl
Sun Sep 18 16:54:05 CEST 2011
Nu dit: dat is al een stuk beter:
$declaredVar="I am a declared variable.".time();
sleep(2);
class user_testgebruik_class {
protected $glob;
function __construct()
{
GLOBAL $declaredVar;
$this->glob =$declaredVar;
}
function test1()
{
echo $this->glob.'test1';
}
function test2()
{
echo $this->glob.'test2';
}
}
-----Oorspronkelijk bericht-----
Van: typo3-ug-dutch-bounces at lists.typo3.org
[mailto:typo3-ug-dutch-bounces at lists.typo3.org] Namens W.S.M. Perquin
[YniVerse]
Verzonden: zondag 18 september 2011 10:22
Aan: 'TYPO3 Usergroup Dutch'
Onderwerp: [TYPO3-UG Dutch] class met global waardes beoordelen. goed
opgezet of kan het slimmer/beter?
In de setup van de betreffende template staat de volgende typoscript code:
includeLibs.user_testgebruik = fileadmin/scripts/testgebruik.php
page.30 = USER_INT
page.30.userFunc = user_testgebruik_class->test1
page.40 = USER_INT
page.40.userFunc = user_testgebruik_class->test2
Onderstaand de class (het is een test class) die ik heb gemaakt en die doet
wat ik wil. Ik wil namelijk eenmalig een variabele vullen (hier als
voorbeeld $declaredVar genaamd). Zometeen wordt de waarde van deze variabele
gevuld met het resultaat uit een query. Deze query wil ik maar 1 keer
uitvoeren en het resultaat meerdere keren gebruiken in de verschillende
class functies. Als ik in de class user_testgebruik_class een __construct
maak en daar die var in plaats merk ik dat hij twee maal wordt uitgevoerd.
(een keer bij de aanroep van test1 en daarna nog een keer bij de aanroep van
test2). Met onderstaand werkt het prima, maar heb het gevoel dat dit niet
helemaal is zoals het hoort. Kan ik deze class niet slimmer opzetten? Het
gebruik van "global" klinkt/voelt zo ouderwets. Het script ziet er nu als
volgt uit
<?php
$declaredVar="I am a declared variable.".time();
//een slaap stand om ervoor te zorgen dat bij nieuwe aanroep de tijd
daadwerkelijk verschillend is
sleep(2);
class user_testgebruik_class {
function test1()
{
global $declaredVar;
echo $declaredVar.'test1';
}
function test2()
{
global $declaredVar;
echo $declaredVar.'test2';
}
}
?>
W-P
_______________________________________________
TYPO3-UG-Dutch mailing list
TYPO3-UG-Dutch at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-dutch
More information about the TYPO3-UG-Dutch
mailing list