在drupal8自定义模块控制器

时间:2017-07-04 05:09:04

标签: drupal-modules drupal-8

我创建了一个自定义模块,在控制器文件中我使用了File :: load static方法。但是当我运行phpcs检查编码标准时,它会给出一个错误

应该在类中避免使用File :: load调用,而是使用依赖注入

任何人都可以告诉我们如何为此创建依赖注入。

1 个答案:

答案 0 :(得分:1)

使用Drupal \ Core \ Entity \ EntityTypeManagerInterface实现。

use Drupal\Core\Entity\EntityTypeManagerInterface;

class MyForm extends FormBase {

 /**
  * The storage handler class for files.
  *
  * @var \Drupal\file\FileStorage
  */
 protected $fileStorage;

 /**
  * This is an example.
  *
  * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity
  *   The Entity type manager service.
  */
  public function __construct(EntityTypeManagerInterface $entity) {
    $this->fileStorage = $entity->getStorage('file');
  }
  ....
 }

您可以在此处将File::load($fid)更新为$this->fileStorage->load($fid)