php5..6中文帮助,6.5. IDE integration
IDE 集成
理想情況下,應用程序代碼不應直接使用DI容器:應首選依賴項注入。但是,在某些情況下,可能會直接調用容器:
編寫根應用程序類(前端控制器等)或更通用的框架時
編寫工廠時
維護或遷移舊版應用程序時
編寫功能測試時
...
在這種情況下,能夠受益于自動完成,重構支持等完整的IDE功能非常有價值。
注釋塊內聯
IDE支持的基本方法是在注釋塊中使用@var標記:
/** @var $repository UserRepository */
$repository = $this->container->get(UserRepository::class);
// IDE現在可以自動完成此語句
$repository->
此解決方案很簡單,并且在很少使用容器時效果很好。
PhpStorm 集成
Metadata 文件
namespace PHPSTORM_META
{
override(\Psr\Container\ContainerInterface::get(0), map([
'' => '@',
]));
override(\DI\Container::get(0), map([
'' => '@',
]));
}
該配置將使PhpStorm假定-> get('...')返回的任何內容都是第一個參數的實例。例如,將->get('DateTime')(或-> get(DateTime :: class))的返回識別成DateTime對象。
但是,如果您的服務名稱不是類或接口,則此方法將不起作用,例如,PhpStorm無法理解->get('foo.bar')。
注意:您可能需要在添加此文件后重新啟動IDE,以確保PhpStorm對其生效。
PhpStorm 插件
如果您不想在每個項目中編寫.phpstorm.meta.php文件,則可以安裝由Anatoly Pulyaevskiy創建的PHP-DI插件。可以通過在第三方插件列表中搜索PHP-DI將插件安裝在PhpStorm中。
此插件提供了與.phpstorm.meta.php相同功能,并且具有相同的限制。
本譯文僅用于學習和交流目的,轉載請務必注明文章譯者、出處、和本文鏈接
我們的翻譯工作遵照 CC 協議,如果我們的工作有侵犯到您的權益,請及時聯系我們。
總結
以上是生活随笔為你收集整理的php5..6中文帮助,6.5. IDE integration的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Openshift3.9部署手册
- 下一篇: 一个4体低位交叉的存储器_前交叉韧带术后