Global en functies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën  -
Beheerder

- Ariën -

16/11/2011 21:15:41
Quote Anchor link
Ik gebruik voor mijn CMS try-catch blokken om hier en daar wat exceptions op te roepen als dat nodig is, en ik vroeg me het volgende af. Ik heb deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
set_exception_handler('error_handler');

function error_handler($e){
global $tpl;

$tpl->assign('title',"Error");
$tpl->assign('refferer',$_SERVER['HTTP_REFERER']);
    
$tpl->assign('error_key',$e->getMessage());
$tpl->assign('error',$errors[$e->getMessage()]);

$tpl->display('error.tpl');
}
?>


Maar nu ga ik straks die hele handler in een 'Exception Class' gooien, gewoon omdat OOP juist leuk en handig is. En dan vraag ik me af, die global $tpl, dat kan toch niet meer anno 2011?

Ik wil wel juist in de exceptionhandler Smarty namelijk gebruiken.

Hoe kan dit dan beter?
Gewijzigd op 18/11/2011 20:53:38 door - Ariën -
 
PHP hulp

PHP hulp

26/04/2024 23:19:19
 
- Ariën  -
Beheerder

- Ariën -

18/11/2011 18:24:35
Quote Anchor link
kick?
 
Jacco Brandt

Jacco Brandt

18/11/2011 20:31:20
Quote Anchor link
Dat kan op verschillende manieren. Je kunt bijvoorbeeld een nieuwe layout-class maken, mocht er echter geen andere informatie instaan. Als dit wel het geval is kun je gebruik maken van een singleton-instantie, waardoor je deze waardes behoud en dus de class laad dmv $tpl = Layout::getInstance(). De alternatieven zijn: deze variabele meesturen met de __construct; een 'container' meesturen met de __construct die alle belangrijke variabelen bevat of deze 'container' statisch maken zodat je er overal bijkunt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.