在PHP中,ASP.NET的UserControls有哪些替代方案?

4

我在ASP.NET中开发了许多Web应用程序,其中我使用UserControls来管理网页的页眉、页脚和其他常见部分。现在我在PHP中开发一个应用程序,有没有什么可以替代UserControls的东西?

我如何在PHP中实现类似的概念?

谢谢?

2个回答

2

第二种答案比较难以在此详细解释,就是构建自己的“UserControl”类。这些类将具有您所需的必要属性,并且将具有一个RenderHTML()方法,该方法将输出控件到屏幕上。


嗯嗯嗯……看起来很酷啊……我们可以应用这个……但是每个控件都要单独制作Ucontrol类吗? - djmzfKnm
我会使用接口来确保所有控制类的行为方式相同。但是,是的,您需要为每个要创建的用户控件创建一个单独的类。但在Asp.net中也是如此。所有常规继承规则都将适用,其中一个ucontrol可以从另一个ucontrol继承等。 - Matthew Vines
是的,对于每个不同的控件,我们在asp.net中也必须创建一个UserControl,同样的方法也可以应用于PHP类方法。 :) - djmzfKnm

1

在PHP中,没有明确存在UserControl的概念,但是你可以将想要的功能封装在一个文件中,并使用include()函数将其放置在你希望的页面中。

<html>
 <head>
   <title></title>
 </head>
 <body>
   <?php include('header.php'); ?>
   <?php include('pageBody.php'); ?>
   <?php include('footer.php'); ?>
 </body>
</html>

请注意Smarty提供了更好的处理和渲染分离,将使这种类型的事情变得非常顺畅。

我非常了解include,但是使用include时,我无法像在UserControls中那样将变量作为属性传递。为了更清楚地说明,假设我想根据一个变量将其传递给我的用户控件,在此基础上,我的网站导航会选择和取消选择标题中的当前菜单。但是使用include,我该如何执行此操作呢? - djmzfKnm
看看 Smarty 吧。使用它的模板引擎是有可能的,但这对你来说可能需要进行一些范式转换。 - Matthew Vines

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接