希望PHP 前辈们 给我述说 对于PHP 开发中,书写模板的有什么好的建议和规范不。比如。模板中有链接。 个人觉得应该在处理数据的时候把拼好作为变量输出 而不应该在模板中去用变量拼出一个链接;还有就是。通常我是在模板里的 PHP 循环中 去调用函数处理下数据。这个是否值得在PHP 文件中单独调用次循环把数据处理好?

解决方案 »

  1.   

    这个和解析相关看解析的原理和方式
    我以前前用就是直接做拼好,然后传到模板就行了,觉得这快些
    如果是动态使用模板,这样可能会好些!但关键看解析原理像uchome的模板,用的是缓存,所有缓存的模板,一般都是解析过的,全PHP,或直接编译的这个差别不是那么明显,因为他只在初次解析是要花时间
      

  2.   

    <ul>
    <% control NewsList(10) %>
        <li><a href="$Link">$Title</a><span>author:$Author</span></li>
    <% end_control %>
    </ul>
    <?php
    class News_Controller extends ContentController {
    function NewsList($limit)
    {
        $sql = "SELECT Id, Title, Author FROM news WHERE 1 LIMIT 0, $limit";
        $reult = DB:Query($sql);
        $output = new DataObjectSet();
        foreach($result as $news){
            $news['Link'] = $this->Link('News', $news['Id']);
            $output->push(new ArrayData($news));
        }
        return $output
    }
    }模板这东西早已不是SMARTY那样的模板了 以上代码来自SilverStripe 理念上比较新的一个MVC框架 LZ的问题其中都有答案
    以上代码是在文本框中打的难免有有错 见谅 呵呵 离开IDE还真不会写代码了
      

  3.   

    所有模板,最终都是要解析成PHP或直接PHP编译的都要经过解析,好与不好
    一看解析速度;二看传参比如:你可以直接传变量字串,
    了可以传数组,在模板中再循环一次现原框架基本上都传数组了原理仍是差不多的,因为传数组,你要先形在数组,然后在模板里再将数组再次遍历出来实质上是经过两次操作,比直接形成字串传进去多了一步