2017-07-04 3 views
0

J'ai créé un module personnalisé, dans le fichier du contrôleur j'ai utilisé la méthode statique File :: load. mais quand je lance phpcs des normes de codage de contrôle, il donnera une erreurFichier :: load dans le contrôleur de module personnalisé drupal8

File :: appels de charge doivent être évités dans les classes, utilisez plutôt l'injection de dépendance

quelqu'un peut s'il vous plaît dire comment créer l'injection de dépendance pour ce.

Répondre

0

Ceci peut être réalisé en utilisant 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'); 
    } 
    .... 
} 

De là, vous pouvez mettre à jour le File::load($fid) à $this->fileStorage->load($fid)