作者gpmm (银色)
看板PHP
标题Re: [请益] PHP、template、回圈 相关问题
时间Thu Apr 17 01:23:08 2008
※ 引述《cleanwind (骨傲风清(挂网))》之铭言:
: 我完全不知道要如何在标题打我的问题 囧。
: 我最近正在尝试一种写法,
: 也就是把 PHP Code 和 html 完完全全的隔开来,
: 拥有 Html 的档案最多最多写 echo 功能(当然这是可以让步的 ...)。
身为一种内嵌式语言,其实 PHP 本身是足以撑起样板引擎的运作,
当然像 Smarty 或其他的样板引擎套件是有他的优点在,
所以还是看使用习惯而定,没有绝对性的优与劣。
将 code 与样板分离是一种很好的概念,但是要适可而止。
诚如 Smarty 也依旧会在 template 中使用回圈变数,
如果现在要为了把回圈也拆解出去而大费周章,甚至耗损效能,
(将档案内容 binary 读入是需要吃 IO 的)
也许就有点本末倒置了。
小弟也有写一套自己的 mvc,
透过 mvc 在开发新东西的速度真的只有快而已,
因为这样实在看不是很出来的你的需求为何,
小弟仅提供自己的经验作为参考。
※ template 的拆解、code 的黏合,尽量由 programer 来做。
※ 设计师在设计页面时,请使用假资料做列表。(其实是一定会用 :P)
※ 每当设计改版时,不要将已经拆卸过的 template 传回给设计师修改。
由设计师更新手上的原始页面,再由你建回 template 会比较妥当。
只要 mvc 做的够好,template 可以拆黏的飞快。
关於 template,在多层架构分离後,小弟的 view register 可以长这样:
$controller->registerView ('list', 'viewClass',
'pageHead;pageBody{login;content};pageTail');
意思是当检视为 list 时,template 的 call 法为
-- pageHead
-- pageBody
-- login
-- content
-- pageTail
而其中 template 的里几乎都是 html,
身为框架的 pageBody 也只需要简单的一行
…前略
<div class="contentLeft">
<?php $view->callshow(); ?>
</div>
…後略
就可以自动在 mvc 下乖乖呼叫 register 好的内容 template
而像回圈在 template 里的输出,因为都会先在 model 中就已经将
资料包成 $data 阵列,
所以输出都类似:
<?php for($i=0; $i<$data['size']; $i++) : ?>
<span>
<?php echo $data['t'][$i]; ?></span>
<?php endfor; ?>
小弟以前在做 mvc、template 的架构时,也曾经很钻牛角尖,
一昧的想做极度分离,只留下像
<?=$name?> 的 php 在 html 里,
但後来渐渐了解这已经有些本末倒置了。 XD
--
忽然发觉完全没有帮到原 po 的问题(汗)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.241.83
1F:→ gpmm:结果原 po 自 d 了吗…囧 04/17 01:24
※ 编辑: gpmm 来自: 220.139.241.83 (04/17 01:25)
2F:推 cleanwind:因为我发现我太钻牛角尖了 XD 和 Soho 版版主打个招呼XD 04/17 01:35
3F:推 kakashiliu:推这篇 04/17 01:58
4F:→ gpmm:XDD 04/17 09:24
5F:推 colmash:推这篇gpmm..XD 04/17 11:27
6F:推 w3c:推这篇 04/17 15:04
7F:推 yingggyy:推~ 04/17 23:57