在PHP中,ASP.NET主视图的等价物是什么?
我习惯于在ASP.NET/ASP.NET MVC中工作,现在上课时我必须制作一个PHP网站 在PHP世界中,什么与ASP.NET的主视图等效 理想情况下,我希望能够使用以下内容定义页面布局: Master.php在PHP中,ASP.NET主视图的等价物是什么?,php,asp.net,asp.net-mvc,Php,Asp.net,Asp.net Mvc,我习惯于在ASP.NET/ASP.NET MVC中工作,现在上课时我必须制作一个PHP网站 在PHP世界中,什么与ASP.NET的主视图等效 理想情况下,我希望能够使用以下内容定义页面布局: Master.php <html> <head> <title>My WebSite</title> <?php headcontent?> </head> <body>
<html>
<head>
<title>My WebSite</title>
<?php headcontent?>
</head>
<body>
<?php bodycontent?>
</body>
</html>
然后让我的其他PHP页面从Master继承,这样我就可以插入这些预定义的位置
这在PHP中可能吗
现在,我将页面的上半部分定义为Header.html,下半部分定义为footer.html,并且在我创建的每个页面上都包含一次_。然而,当我希望能够在母版页上的多个位置插入内容(例如能够在头部插入内容)时,这并不理想
有精通PHP的人能给我指出正确的方向吗?您可以使用或开发自己的模板引擎。
基本上,您可以定义如下的简单布局:
<html>
<head>
<title>My WebSite</title>
<?php include('headcontent'); ?>
</head>
<body>
<?php include('bodycontent'); ?>
</body>
</html>
layout.tpl:
<html>
<head>
<title>My WebSite</title>
{$header}
</head>
<body>
{$bodycontent}
</body>
</html>
定义标题:
header.tpl
<script type="text/javascript" src="js/myjs.js"></script>
以及您的内容文件:
home.tpl
<div>hello {$var}! </div>
最后,您的控制器:
index.php
<?php
$header = new Smarty();
$headerOutput = $header->fetch('header.tpl');
$content = new Smarty();
$content->assign('var', 'world');
$contentOutput = $content->fetch('home.tpl');
$layout = new Smarty();
$layout->display('header', $headerOutput);
$layout->display('bodycontent', $contentOutput);
$layout->display('layout.tpl');
?>
由于PHP是一种编程语言而不是框架,因此它没有现成的功能 这个问题有很多解决方案,最复杂的可能是实际使用框架。有很多选择。不利的一面是,您将学习一个框架,而不是PHP 一个更简单的解决方案是使用。您将更接近PHP,但仍然需要学习如何使用这种引擎
您已经在使用最简单的解决方案:包括主文件中的文件。您还可以包括将要执行的PHP文件,而不仅仅是静态html。如果您不想使用模板引擎,一个解决方案可以是这样的:
<html>
<head>
<title>My WebSite</title>
<?php include('headcontent'); ?>
</head>
<body>
<?php include('bodycontent'); ?>
</body>
</html>
在正文部分:
bodycontent将像一个非常简单的控制器。只需对smarty说不!PHP已经是一种模板语言,为什么还要添加另一个系统来学习呢!你对Smarty说不,我对此很满意。Smarty是一个非常节省时间的工具-非常容易学习,很多人都在花时间添加新的节省时间的功能,并在不需要你做任何事情的情况下关闭安全漏洞。Smarty还允许您拥有一个开源模板库,可以跨多个项目使用。我已经使用它大约五年了,它通过节省开发时间,使逻辑/表示分离变得非常容易,在每个项目上都有很大的不同。