Drupal 8 模块开发 11.5 : PhpStorm 策略

蒲公英 提交于 周四, 08/17/2017 - 18:57
Drupal8模块开发

原文地址:
https://docs.acquia.com/articles/drupal-8-phpstorm-strategies  


PhpStorm 提供了帮助使用依赖注入的工具。  

扩展结构视图

Drupal 8 里,组件功能经常跨多个文件。一个类经常扩展另一个类,或实现一些接口。结构视图可以浏览类的方法和属性,但默认情况下,看不到从其他类继承的方法。有一个按钮可以激活这个功能。  

使用 CMD + 7 (Mac) 或者 View > Tool Windows > Structure 打开这个视图。 

Phpstorm 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) {}