Oggetti
 
  Smarty consente di accedere agli oggetti PHP attraverso i template. Ci sono
     due modi per farlo. Uno è registrare gli oggetti al template, quindi accedere
     ad essi attraverso una sintassi simile a quella delle funzioni utente. L'altro
     modo è di assegnare gli oggetti ai template ed accedere loro come ad una
     qualsiasi variabile assegnata. Il primo metodo ha una sintassi del template
     migliore. E' anche più sicuro, perché su un oggetto registrato potete impedire
     l'accesso a certi metodi o proprietà. D'altra parte, su un oggetto registrato
     non potete effettuare dei cicli o metterlo in un array di oggetti, ecc.
     Il metodo che sceglierete dipenderà dalle vostre necessità, ma quando possibile
     usate sempre il primo metodo, per mantenere la sintassi del template al massimo
     della semplicità.
 
	
  Se la security è abilitata, non è possibile accedere a metodi o funzioni private
    (che cominciano con "_") dell'oggetto. Quando esistono un metodo e una proprietà
    con lo stesso nome, verrà usato il metodo.
	
	
	Potete impedire l'accesso a certi metodi e proprietà elencandoli in un array
	come terzo parametro di registrazione.
	
	
	Per default, i parametri passati agli oggetti attraverso i template sono
	passati nello stesso modo in cui li leggono le funzioni utente. Il primo
	parametro è un array associativo, e il secondo è l'oggetto smarty. Se
	volete i parameteri passati uno alla volta per ogni argomento come nel
	tradizionale passaggio di parametri per gli oggetti, impostate il quarto
	parametro di registrazione a false.
	
	
	Il quinto parametro opzionale ha effetto soltanto quando
	format è true e
	contiene una lista di metodi che devono essere trattati come
	blocchi. Ciò significa che questi metodi hanno un tag di
	chiusura nel template
	({foobar->meth2}...{/foobar->meth2}) e i
	parametri passati al metodo hanno la stessa struttura di
	quelli per le funzioni plugin per i blocchi. Questi metodi
        quindi ricevono 4 parametri $params,
	$content, &$smarty 
        e &$repeat e si comportano come 
        funzioni plugin per i blocchi.
	
 
  usare un oggetto registrato o assegnato
  
register_object("foobar",$myobj);
// se vogliamo impedire l'accesso a metodi o proprietà, elenchiamoli
$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1'));
// se vogliamo usare il formato tradizionale per i parametri, passiamo un false
$smarty->register_object("foobar",$myobj,null,false);
// Possiamo anche assegnare gli oggetti. Facciamolo per riferimento quando possibile.
$smarty->assign_by_ref("myobj", $myobj);
$smarty->display("index.tpl");
?>
+]]>
  
  
   Ed ecco come accedere all'oggetto in index.tpl:
  
  
meth1 p1="foo" p2=$bar}
{* possiamo anche assegnare l'output *}
{foobar->meth1 p1="foo" p2=$bar assign="output"}
the output was {$output}
{* accediamo all'oggetto assegnato *}
{$myobj->meth1("foo",$bar)}
]]>