【问题标题】:How can I use global method in php mvc [closed]如何在 php mvc 中使用全局方法 [关闭]
【发布时间】:2014-06-15 07:41:09
【问题描述】:

我正在尝试了解 MVC 的结构,但我偶然发现了一个地方。
我应该如何集成使用该结构中所有页面的全局功能。

举个例子;

我有一个所有页面都需要的方法,我在侧边栏中显示。

public function user_credit( $userid ){
  return $this->db->getSingleRow( "SELECT * FROM user_credit WHERE userid = $userid" );
}

有些页面不需要模型文件。我不想为所有页面创建模型并将此方法添加到所有页面。

我的解决方案;

1 ) 我创建了一个 globalFunc.php 并保存在 helpers 文件夹中。

globalFunc.php

// 扩展模型,因为我需要 db 连接 类 GlobalFunc 扩展模型 {

function __construct(){
     parent::__construct();
}
  public function user_credit( $userid ){
    return $this->db->getSingleRow( "SELECT * FROM user_credit WHERE userid = $userid" );}   

我在基本控制器中添加 loadHelper 方法。

2 ) 我将 globalFunc.php 保存在 Models 文件夹中。 我在基本控制器中添加了 loadCustomModel 方法。

但是这种方式并没有让我满意。我应该怎么走?

【问题讨论】:

  • “MVC”不是“我的代码”的首字母缩写词。 MVC 模式定义了应用层之间信息流的约束。是否使用函数与 MVC 模式有 NO 关系。此外,模型不是类或表抽象。

标签: php oop model-view-controller helpers


【解决方案1】:

首先,先对 MVC 的概念多做一些阅读。你会到达那里的。

对于您的问题:对于必须由其他几个资源、组件等使​​用的资源,您通常使用服务。在某些情况下,Helper 也是一个很好的解决方案。 像 Twig for Instance 这样的模板引擎可以使用 View Helpers 进行渲染。但那些应该是非常抽象的。

应使用Dependency Injection 管理服务。 您可以拥有一个 DI 容器,然后提供所需服务的实例,并可用于操作它们。

Symfony2 框架有一个很好的 DI 容器组件可供您使用。我认为他们对 DI 概念也有很好的Documentation Article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多