归档
17
08月
Drupal 8 模块开发 11.4 : 依赖注入和插件
作者:蒲公英
0条评论
原文地址:https://docs.acquia.com/articles/drupal-8-dependency-injection-and-plugins
插件
插件是添加依赖注入最复杂的组件。很多插件不需要依赖注入,有时找例子来拷贝都具有挑战性。多数插件继承了使用接口的类。例如 Blocks,继承了 BlockBase,BlockBase 实现了 BlockPluginInterface 。
依赖注入应该添加在个别插件级,而不是基类级别。这意味着我们能够向任何插件添加依赖注入,创建新插件时,也不总是需要使用依赖注入。
17
08月
Drupal 8 模块开发 11.3 : 依赖注入和控制器
作者:蒲公英
0条评论
原文地址:https://docs.acquia.com/articles/drupal-8-dependency-injection-and-controllers
控制器
控制器使用依赖注入比较容易,因为他们提供返回服务容器的 create() 方法。我们已经创建了路由,现在创建下控制器文件:
src/Controller/DIController.php
下载文件
17
08月
Drupal 8 模块开发 11.2 : 依赖注入和服务
作者:蒲公英
0条评论
原文地址:https://docs.acquia.com/articles/drupal-8-dependency-injection-and-services
注入服务
上文定义服务时映射了服务名和服务类,这个服务也是完全独立的。如果我们想创建一个使用其他服务的服务,那么必须注入这些依赖(在 services.yml 文件里定义这些依赖)。我们更新下之前定义的 di_example.services.yml 文件,创建一个使用 current_user 和 di_example.mood_ring 服务 的 di_example.talk 服务。
17
08月
Drupal 8 模块开发 11.1 : 依赖注入回顾
作者:蒲公英
0条评论
原文地址:https://docs.acquia.com/articles/drupal-8-review-dependency-injection
在之前的课程里,我们介绍了 服务(services),控制器(controllers)和插件(plugins)几种模式。在这些模式里我们演示了怎样使用依赖注入。在本回顾里,我们提供一些简单的例子,讨论下怎样使用 PhpStorm 帮助我们使用这些模式。
安装基础例子模块
我们将创建包含两个服务,一个控制器和一个区块插件的 di_example 模块。我们首先创建不涉及依赖注入的基础部分: .info.yml 和 .routing.yml 文件,以及一个服务。这个服务不依赖其他的服务。
17
08月
Drupal 8 模块开发 10.4 : PHPUnit Doubles / Mocks / Stubs
作者:蒲公英
0条评论
原文地址:https://docs.acquia.com/articles/drupal-8-phpunit-doubles-mocks-stubs
我们写单元测试的目的是要测试个别组件,例如一个服务。
通常,服务需要系统其他部分的功能。这种情况下,需要制造依赖的一个模拟(Mock)版本,以便于我们把焦点放在测试服务本身。
创建一个模拟
当你创建一个模拟时,其实你正在创建那个类的一个副本,只是它的所有方法被替换返回 NULL。