k0p*_*kus 6 php auto-generate phpstorm
如果我实现了一个注入了一些服务的类,我必须编写大量的代码:
<?php
namespace Hn\AssetDbBundle\Services;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\TwigBundle\TwigEngine;
use Symfony\Component\HttpKernel\KernelInterface;
/**
* Class SomeNewService
* @package Hn\AssetDbBundle\Services
*/
class SomeNewService {
/**
* @var TwigEngine
*/
private $engine;
/**
* @var KernelInterface
*/
private $kernel;
/**
* @var LoggerInterface
*/
private $logger;
public function __construct(TwigEngine $engine, KernelInterface $kernel, LoggerInterface $logger) {
$this->engine = $engine;
$this->kernel = $kernel;
$this->logger = $logger;
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎是多余的.有没有办法可以减少我必须编写的代码量?是否有用于初始化字段的实时模板,或者我可以自动生成此块的大部分内容吗?
k0p*_*kus 22
您可以使用该Initialize field功能.
这样,您只需要以这种方式编写构造函数方法:
class SomeNewService {
public function __construct(TwigEngine $engine, KernelInterface $kernel, LoggerInterface $logger) {
}
}
Run Code Online (Sandbox Code Playgroud)
然后您可以使用初始化字段.将光标放在构造函数的一个属性上,然后在MacOS上使用Alt+ Enter.
它看起来像这样:

按Enter键后,您将面对一个属性列表,您可以通过这些属性Shift和箭头键进行选择.通过选择所有属性,您的代码将如下所示:
class SomeNewService {
/**
* @var TwigEngine
*/
private $engine;
/**
* @var KernelInterface
*/
private $kernel;
/**
* @var LoggerInterface
*/
private $logger;
/**
* @param TwigEngine $engine
* @param KernelInterface $kernel
* @param LoggerInterface $logger
*/
public function __construct(TwigEngine $engine, KernelInterface $kernel, LoggerInterface $logger) {
$this->engine = $engine;
$this->kernel = $kernel;
$this->logger = $logger;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4637 次 |
| 最近记录: |