传统来说,应用程序使用模板编程都按这样的方式:
   先在PHP程序中,将需要的变量都获取到 (可能还会通过数据库获取),
   然后实例化Smarty对象,调用assign()来赋值变量,并且display()。
   好的,我们来看看模板上显示股票的例子吧。
   我们会在程序中收集到股票的数据,然后将数据变量赋值到模板,并且显示模板。
  现在,如果你可以在模板简单地获取到任意来源的股票数据,不需要担心在前端获取这些数据,不是更好吗?
   
你可以编写一个自定义扩展,来获取内容并且赋值到模板的变量。
Example 21.7. 组件化模板
      function.load_ticker.php -
      文件在
      
      $plugins 目录
    
<?php
// setup our function for fetching stock data
function fetch_ticker($symbol)
{
   // put logic here that fetches $ticker_info
   // from some ticker resource
   return $ticker_info;
}
function smarty_function_load_ticker($params, $smarty)
{
   // call the function
   $ticker_info = fetch_ticker($params['symbol']);
   // assign template variable
   $smarty->assign($params['assign'], $ticker_info);
}
?>
    
          index.tpl
    
{load_ticker symbol='SMARTY' assign='ticker'}
Stock Name: {$ticker.name} Stock Price: {$ticker.price}
    
    参见
    {include_php},
    {include}
    和
    {php}.