Smarty 是什么?
为什么要使用它?
用例和工作流
语法比较
模板继承
最佳实践
速成课程
这是一个使用 Smarty 构建完整工作 PHP 应用程序的示例。本示例的目的是说明 Smarty 如何与应用程序联系以及如何分离您的表达。一旦您了解了表达分离的概念,您应该能够将其应用于任何类型的编程模式。话虽如此,您可以自行决定使用以下代码,并自行承担风险。
您可以 在此 下载此示例应用程序的源代码。这不是有关如何设置 Apache 或 MySQL 的指南。请务必了解这些事情或准备参考资料。如果您正在使用备选方法,则需要对代码进行适当的调整。
我们将构建一个留言簿,用户可以在其中签名或查看留言。此处没有管理界面。我们将介绍涉及 Smarty 的一些编程主题,如表单处理、数据库数据检索和显示。
此示例扩展了 Smarty 安装指南中提供的留言簿应用程序设置,因此我们将在其基础上进行构建。以下是我们将为应用程序使用的文件
/web/www.example.com/docs/ /web/www.example.com/docs/guestbook/ /web/www.example.com/docs/guestbook/index.php /web/www.example.com/smarty/guestbook/ /web/www.example.com/smarty/guestbook/templates/ /web/www.example.com/smarty/guestbook/templates_c/ /web/www.example.com/smarty/guestbook/configs/ /web/www.example.com/smarty/guestbook/cache/ /web/www.example.com/smarty/guestbook/libs/ /web/www.example.com/smarty/guestbook/libs/guestbook_setup.php /web/www.example.com/smarty/guestbook/libs/guestbook.lib.php
让我们逐个过一遍
/web/www.example.com/docs/
/docs/ 目录是我们的 Web 服务器文档根目录。
/web/www.example.com/docs/guestbook/
/guestbook/ 是浏览器可访问我们应用程序的子目录。
/web/www.example.com/docs/guestbook/index.php
index.php 将是我们的应用程序的入口点。Web 浏览器将通过 http://www.example.com/guestbook/index.php. 直接访问此脚本。
/web/www.example.com/smarty/guestbook/
这是我们将保留留言簿应用程序中不需要放在文档根目录下的所有文件的目录。是否将文件放在文档根目录下由您决定,但对于此示例,我们遵循仅将浏览器直接访问的文件放在该目录中的做法。您还可以使用 Apache .htaccess 或其他专用服务器方法来阻止对文档根目录下应用程序文件的直接访问。
/web/www.example.com/smarty/guestbook/templates/
我们将把 Smarty 模板文件放在这里。
/web/www.example.com/smarty/guestbook/templates_c/
这是 Smarty 放置已编译模板文件的位置。如果您已正确安装,则运行 PHP 的 Web 服务器用户在此处拥有写入权限。您不应操作此目录中的文件,它们由 Smarty 生成。
/web/www.example.com/smarty/guestbook/configs/
这是我们放置应用程序配置文件的地方。配置文件是一个用于存储你想利用模板或者应用程序访问的信息的位置。这些不是 PHP 脚本,而是 Smarty 配置文件解析器解析的文本文件。
/web/www.example.com/smarty/guestbook/cache/
这是 Smarty 放置其缓存文件的位置。只有在 Smarty 缓存功能启用时才会使用此目录。如果你已经正确安装,那么运行 PHP 的 Web 服务器用户具有此处的写入权限。你不应该操作此目录中的文件,它们是由 Smarty 生成的。
/web/www.example.com/smarty/guestbook/libs/
/libs/ 是我们放置主应用程序文件的位置。
/web/www.example.com/smarty/guestbook/libs/guestbook_setup.php
guestbook_setup.php 是我们放置应用程序的一些基本初始化信息的位置。
/web/www.example.com/smarty/guestbook/libs/guestbook.lib.php
guestbook.lib.php 是我们放置大部分应用程序逻辑的位置。