Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP支持MVP模式吗?_Php_Asp.net_Mvp_Design Patterns - Fatal编程技术网

PHP支持MVP模式吗?

PHP支持MVP模式吗?,php,asp.net,mvp,design-patterns,Php,Asp.net,Mvp,Design Patterns,有很多例子解释了使用ASP.NET的MVP模式,但没有找到任何使用PHP的例子 我是PHP程序员,想知道在哪里可以获得MVP模式的PHP示例?检查此库MVP和MVC都是GUI应用程序。大多数PHP框架更多地使用“MVC”作为模板。使用哑模型(仅数据库)、非活动视图(=模板)和编排控制器的实际实现实际上已经与MVP匹配。而功能型控制器通常起到演示者的作用,将数据从模型中铲入视图。(在适当的MVC中,模型和视图交互更多,视图实际上是活动组件) 但无论如何,有一些框架实际上知道更新的术语和模式 我是

有很多例子解释了使用ASP.NET的MVP模式,但没有找到任何使用PHP的例子

我是PHP程序员,想知道在哪里可以获得MVP模式的PHP示例?

检查此库

MVP和MVC都是GUI应用程序。大多数PHP框架更多地使用“MVC”作为模板。使用哑模型(仅数据库)、非活动视图(=模板)和编排控制器的实际实现实际上已经与MVP匹配。而功能型控制器通常起到演示者的作用,将数据从模型中铲入视图。(在适当的MVC中,模型和视图交互更多,视图实际上是活动组件)

但无论如何,有一些框架实际上知道更新的术语和模式

  • 我是这么说的,但我还没看过
  • 我想
  • 并类似于模型管道视图控制器
  • 或者看一看——那些没有用UnshapedMVC或passiveemvc列出的是值得检查的

在我看来,Lion框架(www.lionframework.org)是当今最成熟的MVP实现。

简单的回答是:是的,PHP有

(请注意,它并不完全是其原始论文中描述的MVP,而是web的一个变体)

MVC和MVP的区别在于,视图是完全被动的,不知道模型层。而在MVC中,它不是被动的,并且知道模型层。在适当的MVP中,
视图
类(如果是)也不应实现构造函数

MVP的典型示例包括以下部分:
  • 数据访问层(数据映射器、ORM等)
  • 业务逻辑(如验证和计算)
  • 被动视图类(它可以是一个模板,但最好还是使用一个类)
  • 连接模型和视图的演示者
  • 一个如何用PHP实现模型视图演示器的示例 注意:真实场景中的模型不是类,而是抽象层,它包含许多处理应用程序逻辑的类。出于演示目的,我称之为“模型”。

    文件:template.phtml

    <!DOCTYPE html>
    <html>
    <head>
      <title>...</title>
    </head>
    
    <body>
    
      <?php foreach($vars as $key => $value): ?>
          <p><?php echo $key; ?> : <?php echo $value; ?></p>
      <?php endforeach; ?>
    
    </body>
    </html>
    

    请注意,这是一个非常简化的示例。在现实世界中,任何基于MVP的应用程序都应该实现路由器、SPL类自动加载器等功能。

    你是说MVC吗?@Roopesh Shenoy:lionframwork.org和Openlight的第一个链接指向一个目前不存在的页面。@JulianMoreno谢谢你的提示!更新了与internet存档版本的链接。
    <!DOCTYPE html>
    <html>
    <head>
      <title>...</title>
    </head>
    
    <body>
    
      <?php foreach($vars as $key => $value): ?>
          <p><?php echo $key; ?> : <?php echo $value; ?></p>
      <?php endforeach; ?>
    
    </body>
    </html>
    
    $model   = new Model();
    $view    = new View();
    
    $presenter = new Presenter($service, $view);
    
    echo $presenter->indexAction();