Questions tagged «dependency-injection»

3
“应该避免在类中进行重复调用,而应使用依赖注入”
在我的模块中,使用以下代码获取给定网址的网址别名: $alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']); 但是我在我的模块中运行“自动审阅”(http://pareview.sh/)时,我得到以下警告: 16 | 警告| \在类中应避免重复调用,而应使用依赖注入 如何使用依赖注入来更新以上代码?我的整个课程代码如下。 <?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调用,而应使用依赖注入”的示例。

1
在控制器中调用服务的正确方法
我是服务(以及drupal 8!)的新手,正在尝试弄清楚服务。我认为也许我只是在以过时的方式进行创建。我想要做的是使“ hello generator”成为服务,并使用以下命令在另一个控制器中调用它: 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 = …

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; …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.