Re: [請益] PHP、template、迴圈 相關問題
※ 引述《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
→
04/17 01:24, , 1F
04/17 01:24, 1F
※ 編輯: gpmm 來自: 220.139.241.83 (04/17 01:25)
推
04/17 01:35, , 2F
04/17 01:35, 2F
推
04/17 01:58, , 3F
04/17 01:58, 3F
→
04/17 09:24, , 4F
04/17 09:24, 4F
推
04/17 11:27, , 5F
04/17 11:27, 5F
推
04/17 15:04, , 6F
04/17 15:04, 6F
推
04/17 23:57, , 7F
04/17 23:57, 7F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
6
14