タグ付けされた質問 「dependency-injection」

3
「Drupal呼び出しはクラスでは避け、代わりに依存性注入を使用する必要があります」
私のモジュールでは、指定されたURLのURLエイリアスを取得するための以下のコードを使用しています: $alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']); しかし、私のモジュールで自動レビュー(http://pareview.sh/)を実行すると、次の警告が表示されます。 16 | 警告| \ Drupal呼び出しはクラスでは避け、代わりに依存性注入を使用する必要があります 依存性注入を使用して上記のコードを更新するにはどうすればよいですか?クラスコード全体を以下に示します。 <?php namespace Drupal\my_module\Controller; use Drupal\Core\Controller\ControllerBase; /** * MyModule Class defines ajax callback function. */ class MyModule extends ControllerBase { /** * Callback function for ajax request. */ public function getUserContent() { $alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']); $alias = explode('/', $alias); $my_module_views …

1
コントローラへの\ Drupal :: moduleHandler()の依存性注入を使用するにはどうすればよいですか?
コントローラークラスで次の行を使用しています。 \Drupal::moduleHandler()->alter('mymodule_myfunction', $plugin_items); Pareview.shからこのエラーメッセージが表示されます。 クラスでは\ Drupal呼び出しを避け、代わりに依存性注入を使用してください。 どうすればこれを達成できますか?コンストラクター、メソッド、またはサービスを作成する必要がありますか?その場合、サービスに必要なコードは何ですか?サービスが既に存在する場合の「Drupal呼び出しはクラスでは避け、代わりに依存性注入を使用する」という例を見つけました。

1
コントローラーでサービスを呼び出す正しい方法
私はサービス(およびdrupal 8!)に不慣れで、サービスを理解しようとしています。たぶん私は時代遅れの方法で作成しているだけだと思います。私がしたいことは、「helloジェネレータ」をサービスにして、別のコントローラで次のように呼び出すことです。 DBController.php namespace Drupal\db\Controller; use Drupal\Core\Controller\ControllerBase; use Drupal\db\DbServices\HelloGenerator; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; class DBController extends ControllerBase { private $helloGenerator; public function __construct(HelloGenerator $x) { $this->helloGenerator = $x; } public function say($count) { $hello = $this->helloGenerator->getHello($count); return new Response($hello); } public static function create(ContainerInterface $container) { $x = $container->get('db.hello_generator'); return …

1
カスタムフィールドウィジェットでの依存性注入
エンティティクエリサービスをカスタムフィールドウィジェットに挿入しようとしています。これは関連するコードです: /** * Plugin implementation of the 'address_options' widget. * * @FieldWidget( * id = "address_options", * label = @Translation("Addresses"), * field_types = { * "entity_reference" * } * ) */ class MyCustomWidget extends WidgetBase { /** * The entity query factory service. * * @var \Drupal\Core\Entity\Query\QueryFactory */ protected $entityQuery; …

2
プラグインのパブリック静的関数create()とは何ですか?
プラグインクラスで引数を指定して関数public static function createに遭遇することがあります。 たとえば、ここhttps://www.sitepoint.com/tutorial-on-using-drupal-8-plugin-derivatives-effectively/ で確認できます。 public static function create(ContainerInterface $container, $base_plugin_id) { return new static( $container->get('entity.manager')->getStorage('node') ); } 明確にしていただけますか、機能は何ですか?それは何をすべきか、それはどこで使用されますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.