ソムリエでエンジニアのブログ

ワインの事も書きたいけど基本エンジニア用

vscodeでPHP開発中、プロパティに型指定するとエラーが表示される

はじめに

vscodeを利用して開発していた時にクラスのプロパティに型指定を追加するとエラー表示される事象があったのでそちらの改善方法を殴り書き程度のメモになりますが残しておきます。

事象

下記のようなクラスを作成しました。

<?php

namespace App\Domain\ValueObject\Common;

use Exception;

class Id
{
  private int $_id;

  public function __construct(int $id)
  {
    if ($id < 0) {
      throw new Exception('不正なidです。');
    }
    $this->_id = $id;
  }

  public function getId(): int
  {
    return $this->_id;
  }
}

すると添付画像のような文法エラーが表示されます。 f:id:sommelierEngineer:20210822162551p:plain

PHPのバージョンは8系を利用している為、プロパティへの型指定は認められているはずです。(たしか7.4系くらいから認められた?)
その為vscode側の設定をいじります。

対応内容

vscode自体がPHPの基本的な補完は行ってくれるのですが、そちらが問題となっている模様。補完に関してはPHP Intelephenseを利用したいので重複をさけるようvscodeの基本設定を以下の設定に変更します。

PHP > Suggest: Basic 組み込みの言語候補機能。チェックを外す(false)
PHP > Validate: Enable 組み込みのPHP検証。チェックを外す(false)

まとめ

これってvscodeに組み込まれてるphpのバージョン指定が低いって事なんですかね?ようわからん、、、