Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 mvc中使用全局方法_Php_Oop_Model View Controller_Helpers - Fatal编程技术网

如何在php mvc中使用全局方法

如何在php mvc中使用全局方法,php,oop,model-view-controller,helpers,Php,Oop,Model View Controller,Helpers,我试图理解MVC的结构,但我偶然发现了一个地方。 我应该如何集成使用该结构中所有页面的全局函数 举例说明 我有一个所有页面都需要的方法,我在侧边栏中显示这个 public function user_credit( $userid ){ return $this->db->getSingleRow( "SELECT * FROM user_credit WHERE userid = $userid" ); } 有些页面不需要模型文件。我不想为所有页面创建模型并将此方法添加到所有

我试图理解MVC的结构,但我偶然发现了一个地方。 我应该如何集成使用该结构中所有页面的全局函数

举例说明

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

public function user_credit( $userid ){
  return $this->db->getSingleRow( "SELECT * FROM user_credit WHERE userid = $userid" );
}
有些页面不需要模型文件。我不想为所有页面创建模型并将此方法添加到所有页面

我的解决方案

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

globalFunc.php

//扩展模型,因为我需要数据库连接 类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的概念。你会明白的

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

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

Symfony2框架有一个很好的DI容器组件,您可以使用。我认为它们对DI概念也有很好的理解。

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