如果我實現一個類,它可以獲取注入了一些服務,我必須寫這個散裝的代碼:如何自動化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;
}
}
這似乎是多餘的。有沒有一種方法可以減少我必須編寫的代碼量?是否有用於初始化字段的實時模板,或者是否可以自動生成此塊的批量?
是否沒有辦法將字段初始化爲受保護或公共? – hackel 2015-06-16 23:55:56
@hackel我一直在尋找一種方法來讓它們默認保護。一般來說,「公共」和「私人」都被認爲是不好的做法。儘管如此,還沒有找到解決方案。 – Maurice 2015-08-26 14:39:37
@Murice從私人被認爲是不好的做法。 使用public和protected是不好的做法,因爲你不封裝你的屬性。 在開源時你會發現保護非常糟糕。人們將以未創建的方式使用這些屬性。 受保護的應該只用於真正需要和公開從未。 – Dariss 2016-05-26 06:19:54