11.5 PhpStorm 策略
PhpStorm 提供了帮助使用依赖注入的工具。
扩展结构视图
Drupal 8 里,组件功能经常跨多个文件。一个类经常扩展另一个类,或实现一些接口。结构视图可以浏览类的方法和属性,但默认情况下,看不到从其他类继承的方法。有一个按钮可以激活这个功能。
使用 CMD + 7 (Mac) 或者 View > Tool Windows > Structure 打开这个视图。
灰色方法是继承来的,黑色是当前类中的方法。使用 CMD + 1 可以显示文件列表。
使用服务名找到一个服务类
你经常会看到服务名,但找到这个服务比较有挑战性。我们可以使用 PhpStorm 的文件搜索找到它。
例如,你有参数 arguments: ['@current_user']
,代码这样:
$current_user = \Drupal::service('current_user');
这种情况我们知道服务叫做 current_user
,但不清楚它定义在那个 service.yml
文件内。
使用 CMD + Shift + F 打开文件搜索。(见附图)
使用带冒号的服务名 service-name: ,只在 *services.yml
文件内搜索,我们只会得到一个结果:
current_user: class: Drupal\Core\Session\AccountProxy
从这里我们知道服务类是 Drupal\Core\Session\AccountProxy
。也可以使用 Search Everywhere(按两次 Shift) 功能搜索 AccountProxy
类,之后直接导航到这个类。
从使用的代码导航到类
在 PhpStorm 里,如果我们知道类名,可以很容易的使用“ CMD + 点击这个类名”导航到这个类。本例中我们点击 AccountInterface,可以导航到 AccountInterface 类。
public function setAccount(AccountInterface $account) {}