在PHP中,ASP.NET主视图的等价物是什么?

在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>

我习惯于在ASP.NET/ASP.NET MVC中工作,现在上课时我必须制作一个PHP网站

在PHP世界中,什么与ASP.NET的主视图等效

理想情况下,我希望能够使用以下内容定义页面布局:

Master.php

<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还允许您拥有一个开源模板库,可以跨多个项目使用。我已经使用它大约五年了,它通过节省开发时间,使逻辑/表示分离变得非常容易,在每个项目上都有很大的不同。