將惱人的預設檔頭拿掉,並加上 PHP 7 所需要 strict types 宣告

當使用 PhpStorm 建立 class 時,預設會產生 Created by PhpStorm 的註解,並包含作者日期時間等資訊,有的人喜歡,有的人不喜歡,若你不希望每次建立 class 時都有這個檔頭,可以自行修改;除此之外,在 PHP 7 為了讓強行別檢查發揮作用,我們會在一開始 declare(strict_types = 1);,這也可以直接設定在 class template,以後只要建立新的 class,都會自動加上宣告。

Motivation


預設在 PhpStorm 建立 class 時,都會在檔頭加上 Created by PhpStorm 的註解,很多人建立 class 後的第一件事情,就是去刪除這些註解,事實上我們可以透過修改 PhpStorm 的 class template,移除這些設定。

Version


PHP 7.0.8
PhpStorm 2016.2.1

移除註解


PhpStorm -> Preferences -> Editor -> File and Code Templates -> PHP Class

我們發現每個 class template 都有 #parse("PHP File Header.php")

PhpStorm -> Preferences -> Editor -> File and Code Templates -> includes -> PHP File Header

切換到 includesPHP File Header,我們可以看到預設的註解就是在此,若你不喜歡這些註解,可以全部刪除後存檔。

宣告 Strict Type


PHP 7 增加了 scalar type hint 與 return type,不過為了相容於過去 PHP 弱型別傳統,預設並沒有啟動型別檢查,必須自己加上 declare(strict_types = 1) 之後,PHP 與 PhpStorm 的 Code Inspection 才會根據 type hint 與 return type 檢查型別。1 1關於 PhpStorm 的 Code Inspection,詳細請參考如何在 PhpStorm 使用 Code Inspection?

目前 PHP 7 並沒有提供全域的 php.ini 設定,必須自己在每個 .php 加上設定,很麻煩也容易忘記,若能設定在 class template 內,則以後新增 class 都會有 declare(strict_types = 1)

PhpStorm -> Preferences -> Editor -> File and Code Templates -> includes -> PHP File Header

刪除預設註解後,改加上 declare(strict_types = 1)

以後新增 class,預設註解不見了,且自動加上 declare(strict_types = 1)

Conclusion


  • 除了移除預設註解與宣告 strict types 外,如一些需靠 Laravel artisan 建立的 controller、unit test …,事實上也可以新增一個 template,直接使用 PhpStorm 來新增。

Reference


PhpStorm Online Help, File and Code Templates

2016-10-05