YII模板(前台显示)详细分析

Yii2实战教程 2015年5月27日 3.78K

第一部分,分析模板中所用到的YII变量及方法总结

模板中用的到变量:
<?php echo Yii::app()->request->baseUrl; ?> URL目录
<?php echo CHtml::encode($this->pageTitle); ?> 网页标题信息

引用css/images用法如:

href=”<?php echo Yii::app()->theme->baseUrl; ?>/assets/css/blue.css” />
<?php echo CHtml::encode(Yii::app()->name); ?> 网站名称,配置信息中声明
<?php echo Yii::powered(); ?> 版权信息

调用模板片段
<?php $this->widget(‘zii.widgets.CMenu’,array(‘items’=>array(..))) ?>
<?php $this->widget(‘zii.widgets.CBreadcrumbs’, array( ‘links’=>array(..)))?>

输出组件主要内容
<?php echo $content; ?>

第二部分,分析内容输出调用方式

CApplication.run->CWebApplication.processRequest->CWebApplication.runController->$controller.init,$controller.run($actionID)->PostController.actionID(){ .. $this->render()..}
以上是调用经过,处理模板是在 CController.render 方法中,先处理action生成output作为内容,然后再处理layout模板进行输出.

1,用布局作为内容处理过程
$this->beginContent(‘/layouts/main’);->$this->beginWidget(‘CContentDecorator’,array(‘view’=>$view, ‘data’=>$data));

$this->endContent(); ->$this->endWidget(‘CContentDecorator’);

第三部分,beginWidget 和 endWidget 方式加载模板内容

beginWidget-> COutputProcessor.init()
   {
       ob_start();
       ob_implicit_flush(false);
   }

endWidget->COutputProcessor.run()
   {
       $output=ob_get_clean();
       $this->processOutput($output);
   }


关注微信公众号『PHP学习网

第一时间了解最新网络动态
关注博主不迷路~

PHP学习网:站内收集的部分资源来源于网络,若侵犯了您的合法权益,请联系我们删除!
分享到:
赞(3)

文章评论

您需要之后才可以评论
0点赞 0评论 收藏 QQ分享 微博分享

PHP学习网

PHP学习网