视图

视图通常包含了一个项目应用的HTML代码,分离控制器和业务逻辑。视图存放于application/views 目录下。

一个简单的视图案例:

通过控制器传递参数给view

  1. <?php
  2. class IndexController extends Star_Controller_Action
  3. {
  4. public function init()
  5. {
  6. }
  7. public function indexAction()
  8. {
  9. //三种赋值方式
  10. $this->view->title = "Hello World";
  11. $this->view->assign("content", "Hello World.");
  12. $this->view->assign(array(
  13. "title" => "Hello World",
  14. "content" => "Hello World.",
  15. ));
  16. }
  17. }
  18. ?>

view脚本文件 application/views/scripts/index/index.phtml

  1. <html>
  2. <head>
  3. <title><?php echo $this->title;?></title>
  4. </head>
  5. <body>
  6. <?php echo $this->content; ?>
  7. </body>
  8. </html>

主题

SF非常便捷支持设置不同主题,无需修改业务逻辑代码,使用主题来修改外观和体验。

SF默认是使用的views/scripts目录下view脚本, 你可以通过设置主题:

  1. $this->view->setTheme($theme_name);

静态资源

为了免去前端静态资源被浏览器或者cdn缓存所带来的烦恼,SF提供了静态资源版本管理统一管理,方便即时展示最新修改的资源文件内容。

配置文件添加静态资源配置

  1. ;静态资源基础路径
  2. resources.view.staticConfig.base_path = http://static.sf.com
  3. ;静态资源版本号
  4. resources.view.staticConfig.version = v_20150808001

方法

view获取静态资源路径

  1. <?php echo $this->getStaticBasePath(); ?>

view获取静态资源版本

  1. <?php echo $this->getStaticVersion(); ?>

控制器配置加载js资源

  1. $this->view->setJsConfig(array(
  2. "files" => array(
  3. "js/jquery",
  4. "js/common",
  5. ),
  6. ));

view加载配置js资源

  1. <?php
  2. echo $this->loadJs();
  3. ?>

执行结果

  1. <script type="text/javascript" src="http://static.sf.com/v_20150808001/jquery.js"></script>
  2. <script type="text/javascript" src="http://static.sf.com/v_20150808001/common.js"></script>

控制器配置加载css资源

  1. $this->view->setCssConfig(array(
  2. "files" => array(
  3. "css/common",
  4. "css/content",
  5. ),
  6. ));

view加载配置css资源

  1. <?php
  2. echo $this->loadCss();
  3. ?>

执行结果:

  1. <link rel="stylesheet" type="text/css" href="http://static.sf.com/v_20150808001/css/common.css" />
  2. <link rel="stylesheet" type="text/css" href="http://static.sf.com/v_20150808001/css/content.css" />