Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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/5/actionscript-3/6.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中的每个应用程序类_Php_Oop - Fatal编程技术网

“使全球化”;“记录器”;类可用于php中的每个应用程序类

“使全球化”;“记录器”;类可用于php中的每个应用程序类,php,oop,Php,Oop,我有一些将数据存储到DB的类,我想实现一个新的loggerclass方法,在每个pdo UPDATE语句之后执行一些日志操作 声明 这些类中的每一个都扩展了一个global类 我希望每个类都有$logger类 我想我需要在全局类中“包括”一个新的logger类,对吗 如果是,我应该如何以正确的OOP方式执行?我只需要一些快速的简报,而不是详细的代码 多谢各位 class Global { private $logger = null; protected functio

我有一些将数据存储到DB的类,我想实现一个新的
logger
class方法,在每个pdo UPDATE语句之后执行一些日志操作

声明

  • 这些类中的每一个都扩展了一个
    global
  • 我希望每个类都有$logger类
我想我需要在全局类中“包括”一个新的
logger
类,对吗

如果是,我应该如何以正确的
OOP
方式执行?我只需要一些快速的简报,而不是详细的代码

多谢各位

class Global {

    private $logger = null; 

    protected function log($msg) {
      if ($this->logger === null) {
         $this->logger = new Logger();
      }
      $this->logger->log($msg);
   }
}
在其他类中
$this->log('test')

编辑:
更好的方法是使用依赖项注入,例如使用pimple。

需要查看一些实际代码以提供帮助。但是传统的OOP方法是为数据库类创建装饰器。这将需要一个干净的OOP代码库,它已经基于接口了?“全局”作为关键字还是实际名称?如果你的意思是该类应该在任何地方都可以访问,那么只需使用一些自动加载。你将如何从类外调用
受保护的
方法?我将
受保护的
更改为
公共
,但未找到
类“记录器”
错误。。。我应该设置
global
来扩展一个新的
Logger
类吗?这只是一个例子。您需要在log函数中创建ja Logger。他说所有类都扩展了全局类。。。。当然你可以调用一个受保护的函数