Phpstorm 是一款適合 PHP 開發人員的優秀 IDE。雖然它不是免費的,但您可以獲得非常酷的功能,例如實時模板。
即時範本是為您的編輯器量身訂做的擴充功能。
PhpStorm 已經為各種上下文提供了有用的擴展,預設包括 PHP。
您可以在「設定」>「設定」中查看編輯>即時範本:
fore 消除了手動輸入 foreach 迴圈的麻煩。
如果您輸入 f、fo 或 for,您可能會在列表中排在最前面,但請確保您選擇的是 fore 而不是 foreach,這在這裡不會發揮作用:
前面輸入的時間有點長,但可以更安全地獲得所需的模板。它也應該有一個描述(foreach iterable_expr as $value)。
即時模板允許方便地自訂變數名稱:
然後,只需按 ⇥Tab 即可展開整個 foreach 區塊。
注意:我在演示中使用滑鼠,但我的想法是堅持使用鍵盤。
上下文可以更好地組織並減少編輯器中的噪音。
例如,您不需要前展開來編輯 HTML 檔案。
這就是為什麼這個即時模板只適用於 PHP:
您可以建立自訂模板群組,將即時模板套用到一個或多個群組,並定義自訂變數來控制渲染。
您甚至可以定義如何使用鍵盤擴充模板(例如,Tab、Enter 與空格)。
不要一次又一次地輸入相同的結構:
public static function () { }
只需輸入 pu 或 pub,選擇 pubsf 即時模板,然後按 ⇥Tab:
來源:官方文件 - 即時範本
您可以建立自訂即時範本來滿足您的需求。
前往「設定」>編輯>即時模板,選擇 PHP 模板群組,然後按下按鈕新增新的即時模板:
您會得到類似以下內容:
特別注意名為「適用上下文」的複選框(此處為「PHP 語句」)。
如果您在編輯器中沒有看到即時模板,可能是因為您忘記配置某些內容或您的案例與任何選取的項目都不匹配。
透過此設置,您可以獲得高級粒度,因此相應地更改適用的上下文以使您的擴充工作。
讓我們新增一個即時模板來新增override 屬性(PHP 8.3),這意味著如果一個方法明確重寫其父類,而父類沒有該方法(不再),則會觸發錯誤:
現在,當您在編輯器中輸入內容時,您會獲得 override 屬性,這消除了手動編寫的麻煩。
PhpStorm 使用 XML 儲存它:
public static function () { }
雖然這不是詳盡的列表,但這些預定義變數很重要:
Variable | Description |
---|---|
$END$ | Caret position after editing variables |
$SELECTION$ | Denotes the code fragment to be wrapped in surround templates |
$RETURN_TYPE$ | Return type of the function or method |
來源:文件 - 預定義變數
$SELECTION$ 用於更進階的用法。需要建立環繞模板:
public static function () { }
注意:請閱讀文件以正確配置您的環繞範本(您必須編輯變數)。
還記得我們剛剛在 fore 看到的 $item 變數嗎?
即時修改名稱非常方便,不是嗎?
要了解其工作原理,只需編輯模板變數並檢查關聯的表達式:
內建表達式允許非常進階的自訂,例如智慧型自動完成、名稱建議,甚至是正規表示式。
您可以右鍵單擊清單中的任何即時範本來複製它。如果您檢查剪貼板,您將看到類似以下 XML 的內容:
<template name="over" value="#[\Override]" description="add override attribute" toReformat="true" toShortenFQNames="true"> <context> <option name="PHP" value="true" /> </context> </template>
從現有模板開始一個新的即時模板非常有用。
但是,在這種情況下,您寧願使用重複按鈕(位於刪除按鈕“-”右側):
PhpStorm 將即時範本以 XML 檔案形式儲存在 IDE 配置目錄的 templates 目錄中:請參閱 idea.config.path。
複製貼上可能沒問題,但您可能想同步這些片段。例如,如果您為所有團隊成員維護和共用通用範本。
您也可以手動匯出和匯入所有即時模板。
注意:請閱讀本節以了解設定。
您可以使用AI工具或啟用JetBrain AI助理(外掛程式),以便IDE可以根據您的使用情況進行預測。
不過,請先閱讀隱私權政策:
JetBrains AI 服務可以收集與 AI 功能使用相關的兩類資料:行為資料和詳細資料。這兩種類型的資料收集都完全由使用者控制。
來自 JetBrains AI Service 的資料被傳送給第三方語言模型提供者
我完全理解人工智慧的炒作,它在重複性任務方面做得很好。
根據我迄今為止的經驗,即時模板更加一致,並且不容易產生幻覺。
請注意,這並不意味著您不能組合這些工具,但請在按 ⇥Tab 之前仔細檢查 AI 建議。
以下是一些即時模板 (PHP) 的用例:
即使是每天使用 PhpStorm 的開發團隊,這個功能也被低估了。
享受即時模板並按 ⇥Tab ?
以上是PHP:跳過無聊的部分並按 Tab!的詳細內容。更多資訊請關注PHP中文網其他相關文章!