将元素添加到其他元素

时间:2010-08-02 15:24:48

标签: php object parent-child addchild

过去几年我一直在使用.net,我喜欢你可以在任何地方在页面的任何位置添加控件的方式。例如,即使已有正文,也可以说Head.Controls.add(new LiteralControl("<link rel='stylesheet' type='text/css' href='styles.css' />"))

有可能在php中做这种事吗?我的网站设置为我们有代理商,客户和艺术家(这是一家卡片制造公司,他希望客户申请在展会上脱机使用)。添加代理表单可以具有与添加客户表单不同的样式。因此,我希望每个类型都包含在不同的文件夹中(例如代理,客户和艺术家),每个文件夹都有自己的样式表。将有一个表单页面,其中包含GET类型的参数(艺术家,客户等),模式(创建,编辑)和ID的可选参数(在编辑模式下)。我希望能够一次性致电$agentForm->generateForm()$agentForm->generateStyleTag(),而不是我目前正在做的事情,即在身体中呼叫$agentForm->generateForm()并在$agentForm->generateStyleTag呼叫头部(甚至没有生成开始身体标签)。

一个很好的方法就是我有一个Head标签和一个Body标签。在另一个名为$agentForm->generateHTML()的函数中,我想说Body->addChild("bla")Head->addChild("bla")。这使得开发新页面变得更加容易,因为它确保样式存在并且对于用户所在站点的部分是正确的。

是否有可能实现这一点,或者这是php和.net之间的主要区别之一?

4 个答案:

答案 0 :(得分:5)

PHP本质上只是为了将字符串抛出到STDOUT而设计,除非缓冲。要使其工作,您必须使用支持此功能的模板系统,或者自己动手。没有'内置'模板系统,除非你计算在DOMDocument或其他东西中加载整个东西,并进行主要的原始DOM操作,这将非常慢,哪个除非你计划进行大量其他DOM修改,否则我不建议使用。谷歌围绕PHP模板系统,并检查哪一个支持您的需求。

答案 1 :(得分:3)

你需要意识到某些事情。 .NET框架,而不是编程语言。问题与Can you do this in C#相同。意识到你正在将苹果与橘子进行比较。

PHP语言是Turing完成的,所以是的,你可以做到。这并不意味着编写它的代码(它可能是)或者它很容易(谁知道)。这只意味着它是可能的。

话虽如此,你需要找到一个框架来做你想做的事情。这种操作不会带有任何语言(因为它对整个语言来说太过限制)。所以你的任务不再是“PHP可以做到这一点”,而是“我需要找到一个框架来做到这一点”。尝试研究框架,我敢打赌你会很容易找到答案......

答案 2 :(得分:2)

查看PRADO框架和Yii框架。它们具有分层的,基于组件的philosphy,允许嵌套和组合,重要的是从较小的可插拔组件构建整个站点。

答案 3 :(得分:0)

正如已经指出的那样,PHP是一种语言,而.Net是一种框架。这两者是非常不同的东西。

如果你想使用PHP作为.Net的脚本语言,总会有Phalanger