2

过去几年我一直在使用 .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

4 回答 4

5

PHP 本质上只是为了将字符串扔到 STDOUT 中而设计的,除非被缓冲。要完成这项工作,您必须使用支持此功能的模板系统,或者使用您自己的模板系统。没有“内置”模板系统,除非你计算加载整个东西DOMDocument或其他东西,并进行主要的原始 DOM 操作,这会慢很多,除非你打算做一个整体,否则我不会推荐许多其他 DOM 修改。谷歌搜索 PHP 模板系统并检查哪一个支持您的需求。

于 2010-08-02T15:31:40.550 回答
3

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

PHP 语言是图灵完备的,所以是的,你可以做到。这并不意味着执行它的代码已经编写(可能是)或者它会很容易(谁知道)。这只意味着它是可能的。

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

于 2010-08-02T15:39:09.427 回答
2

看看PRADO框架和Yii框架。他们有一个分层的、基于组件的理念,允许嵌套和组合,从更小的、可插入的组件中构建一个完整的站点。

于 2010-08-02T15:34:14.050 回答
0

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

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

于 2010-08-02T15:51:42.640 回答