看了一下框架,总觉得用框架程序的效率会降低很多,那些自动加载调用之类的会很浪费时间。所以我觉得是不是框架只能用于快速建站,对于网站性能要求很高的来说,还是不能用框架的。
现在需要做一个类似于SNS的网站,效率要求会很高,设计架构的时候还是准备用MVC模式,准备自己动手写一个类似于框架的东西出来。研究了一下think和cake之后,有个问题一直没有弄明白。就是在controller如何向view层传值。我现在的做法是直接在controller的每个action最后直接include视图文件,总觉得这样做不够完美。想请教一下大家。

解决方案 »

  1.   

    1、什么是“框架”?框架是某种应用程序的模板,他集成了实现该应用程序的一切必要元素
    2、借助框架,你可以轻松的搭建一个应用程序:只需提供用户界面和运算逻辑,并可将主要精力放在运算逻辑上
    3、view 层的实现,主要在于用最简单的描述方法来实现用户的个性需求
      

  2.   

    控制器里  include view层的东西..
     这就是显示view...
      

  3.   

    如果不是在程序中 echo '<div>'.$content.'<div>'; 那么你就已经是一个视图层了至于传值的问题,无非就是在视图的作用域(姑且称之为作用域吧)得到这个变量至于你是想直接用action作用域里面的变量,还是要必须由action作用域的变量变为视图作用域的变量基本上对你的视图影响不大吧(如果你要统一处理视图层的变量则另外说)
      

  4.   

    将controller获取的数据,装入一个统一的变量,将这个变量扔进模板层解析 仅此而已它只是封装了,使用了类似 $this->display() 这样显示模板页面的函数而已,实质上这个函数里面可能就是去include模板,然后解析php文件
      

  5.   

    实现view,本来就需要include view层来的。不过可以封装下。view做成一个函数:function view($templageName='',$data=array()){}
    显示同示可以传数据,那样就不会有其它变量影响到。也可以用 assign 的方式来分配变量(smarty等就是这种)。
      

  6.   

    这是一个很巧妙的问题!各个框架,实现起来各异!比如uchome,用的是模板,要解析模板! 将模板合并成php文件!然后再处理!有的是用多层ob_start+include,如ci!总体而言,两类方法,就是以上两种或以下:1-向view类传递变量;(其他)
    2-不断更新变量include(ci)其他的就是高级一些的:如layout类的控制
    各个片断的缓存!
      

  7.   

    在thinkphp中传值
    在action中
    $this->assign("test","bb");       //view中可以直接写{$test}或者写php语句
    $this->display();//为空则会根据action找到对应的模板.填上名字也可以调用别的模板在cakephp中
    $this->set("test","bb"); //view中echo
    $this->render();//模板名字;上面的方法都是框架已经封装好的.自己手写的话.可以在建立公共类和方法。通过这些方法进行传值和调用模板页面.
    在这些公共方法中还是会加载view页面的.
    其实框架只不过是把这些调用都进行封装了.开发者可以直接使用框架提供的方法进行操作了.
    如果自己写个框架.如果设计的好.感觉还是不错的。
      

  8.   

    发果是自已写框架,还是值得研究的!否则的话就没必要深入了!不少框架都是向view类传值!这样在view里,可以$this->value调用!也有直接调用的$value,但这个需要extract $this->value 或array所以.向类传值或数据都可以
    但难的不在这儿! 下面的问题要考虑的:一个是layout是否方便!(这个用类比较方便)
    二是片断缓存问题!是否方便地返回一个片断的内容而不输出.从性能的角度考虑:如果不用缓存,include 的效率应是高的,它不用解析模板,只是不断地增加变量;(多级模板时) 所以ci的模式是高的!如果用缓存!大家差不多! 因为模板是预解析的.
      

  9.   

    用框架吧,或者自己写一个mvc出来,思路很清晰的