2023-03-18

关键词:decorates. 比如覆盖系统里logger.factory服务. 

以前的调用方式是

\Drupal::logger('my_channel')->notice('hello world');

比如我们想修改日志的写入方式, 定义新的服务

services:
  my_log:
    parent: logger.factory
    decorates: logger.factory
    class: Drupal\test_code\Mylog

定义Mylog文件和覆盖getChannel代码. 加一个打印信息

<?php

namespace Drupal\test_code;

use Drupal\Core\Logger\LoggerChannelFactory;

class Mylog extends LoggerChannelFactory{

  public function get($channel)
  {
    dpm('run my loger');
    return parent::get($channel); // TODO: Change the autogenerated stub
  }
}

Drupal 9 change services

标签: Drupal Services