进阶安装

这是基础安装的进阶,请先阅读基础安装文章。

稍微更灵活的方式是使用扩展类来安装Smarty和初始化。 代替反复地定义路径,赋同样的值等等,我们可以把这些操作放在一个地方进行。

我们新建一个目录/php/includes/guestbook/,并新建一个setup.php文件。在下面的例子中,我们假设/php/includes目录已经在include_path中。确定你已经进行这个配置,或者使用绝对路径。


Example 2.10. /php/includes/guestbook/setup.php

  1. <?php
  2.  
  3. // load Smarty library
  4. require('Smarty.class.php');
  5.  
  6. // The setup.php file is a good place to load
  7. // required application library files, and you
  8. // can do that right here. An example:
  9. // require('guestbook/guestbook.lib.php');
  10.  
  11. class Smarty_GuestBook extends Smarty {
  12.  
  13. function __construct()
  14. {
  15.  
  16. // Class Constructor.
  17. // These automatically get set with each new instance.
  18.  
  19. parent::__construct();
  20.  
  21. $this->setTemplateDir('/web/www.example.com/guestbook/templates/');
  22. $this->setCompileDir('/web/www.example.com/guestbook/templates_c/');
  23. $this->setConfigDir('/web/www.example.com/guestbook/configs/');
  24. $this->setCacheDir('/web/www.example.com/guestbook/cache/');
  25.  
  26. $this->caching = Smarty::CACHING_LIFETIME_CURRENT;
  27. $this->assign('app_name', 'Guest Book');
  28. }
  29.  
  30. }
  31. ?>
  32.  

index.php文件中使用setup.php:


Example 2.11. /web/www.example.com/guestbook/htdocs/index.php

  1. <?php
  2.  
  3. require('guestbook/setup.php');
  4.  
  5. $smarty = new Smarty_GuestBook();
  6.  
  7. $smarty->assign('name','Ned');
  8.  
  9. $smarty->display('index.tpl');
  10. ?>
  11.  

现在你可以看到这是非常简单就可以实例化一个Smarty的对象, 仅调用Smarty_GuestBook()就可以自动初始化程序。

原文: https://www.smarty.net/docs/zh_CN/installing.smarty.extended.tpl