我无法忍受与代码混杂的HTML.我几乎看不到其中一个模板而不会感到恶心.我知道,当你拥有一支"网页设计师"大军时,你是唯一的开发者,使用一些模板系统是有意义的.我经常听说Smarty.但就我而言,它一直是更多工作的源泉.
无论如何,这次我要单独进行,所以我不想用谚语极点触摸HTML模板.所以我目前正在做的是这样的:
add_contents(new html_tag('p', 'It works', array('id' => 'helloworld', 'class' => 'somecssclass'))); echo $page->render(); ?>
一切都属于一个很好的对象层次结构,这是好的和花花公子.当然我有很多小类,我正在考虑使用动态类(例如,'html_a'会自动创建一个'a'类型的html_tag对象.)
现在,我的问题是:似乎没有其他人这样做.为什么?我在那里太远了,我的虚弱,缺氧的头脑从大局中遗漏了什么?
(我清楚地记得一个开源库正是这样做的,但是再也找不到了.所以除非我实际想象的东西,否则我不是唯一一个想到这种渲染HTML方法的人.)
你有什么想法吗?(请不要推荐另一种语言;我最喜欢的语言是Perl,所以我可以轻松地通过你:-).我坚持使用PHP.)
编辑
呃呃,似乎我的神经紧张.一些澄清:
我是这个项目中唯一的开发人员.
我如何将代码与HTML混合?我的库中的"html_tag"对象非常类似于DOM中的节点."render"方法是创建html的方法(精美缩进,我必须添加),但我不会在任何地方写任何开始或结束标记.
我为几个任务创建小对象.这些对象具有构建标记对象的方法; 然后将这些结果对象插入表格或页面中.
我是否提到我坚持使用PHP?
我的库有一些原始的访问方法来查找对象.因此,26288中发布的迭代器示例可以相对轻松地实现.
我并不担心表现(但是.)我一直认为这是一个非常好的问题,但我还没有.
Owen.. 9
好吧,最重要的是,你仍在将HTML与代码混合在一起.如果你想将"p"标签改为"div",你必须浏览代码才能完成它.想想你的方法提供了什么:
将代码与HTML混合
增加了解析所有请求的开销
在HTML上引入了一种新的"语言"
从本质上讲,虽然方法可能不同,但它与您试图摆脱的模板语言具有相同的问题.
如果你单独(或在一个小组中)工作,让PHP成为模板语言会不会更容易?
$page = new Page('test.html'); $page->load($data); $page->render();
并在您的test.html"模板"
其他模板引擎真正做的是将上述代码形式化.但是如果你坚持基础(回声变量,基本条件,循环),你基本上拥有模板语言的所有功能,但是在熟悉的PHP中,没有性能开销.
此外,不像你的榜样,你可以改变HTML(我知道你不想去触摸它,但在代码改变"P"到"格"真的不是从改变不同 好吧,最重要的是,你仍在将HTML与代码混合在一起.如果你想将"p"标签改为"div",你必须浏览代码才能完成它.想想你的方法提供了什么:
将代码与HTML混合 增加了解析所有请求的开销 在HTML上引入了一种新的"语言"
从本质上讲,虽然方法可能不同,但它与您试图摆脱的模板语言具有相同的问题. 如果你单独(或在一个小组中)工作,让PHP成为模板语言会不会更容易? 并在您的test.html"模板" 其他模板引擎真正做的是将上述代码形式化.但是如果你坚持基础(回声变量,基本条件,循环),你基本上拥有模板语言的所有功能,但是在熟悉的PHP中,没有性能开销. 此外,不像你的榜样,你可以改变HTML(我知道你不想去触摸它,但在代码改变"P"到"格"真的不是从改变不同来
1> Owen..:$page = new Page('test.html');
$page->load($data);
$page->render();
来
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有