検索
連載

まだある! PHPプログラミングを支援する拡張機能Visual Studio Code+PHPの可能性を探る(2/2 ページ)

PHPのコーディング規約を利用したコードチェックと整形を行う拡張機能や、DocBlockの記述を支援してくれる拡張機能を紹介。

Share
Tweet
LINE
Hatena
前のページへ |       

PHP DocBlocker拡張機能

 PHP DocBlocker拡張機能は、DockBlockの記述を容易にしてくれる。例えば、「/**」と入力して[Tab]キーを押せば、そのスケルトンを自動生成してくれる。また、「@」で始まるタグ名の補完も可能だ(PHP IntelliSenseではこれはサポートされていない)。

 例として、先ほど作成したcreateMessage関数のDocBlockをこの拡張機能の力を借りて作ってみよう。

PHP DocBlocker拡張機能を利用してDocBlockを記述
PHP DocBlocker拡張機能を利用してDocBlockを記述

 「/**」を入力した時点でIntelliSenseにより「*/」が自動で挿入されるが、その後で[Tab]キーを押すことで、createMessage関数のパラメーターを考慮に入れたDocBlockが自動的に作成されるのが分かるはずだ。後は、必要事項を記入しては[Tab]キーを押していくことで、DocBlockの記述が簡単に行える。

 phpcsはDocBlockについてもチェックをしてくれる。そこで、エラーが出ないように、上で作成したDocBlockに少し手を入れたものが以下だ(強調書体の部分)。

<?php

/**
* Create hello message
*
* @param string $h hour to make message.
*
* @return string hello message depended on hour.
*/
function createMessage($h)
{
    if (6 <= $h && $h <= 11) {
        $msg = "Good morning!, ";
    } elseif (12 <= $h && $h <= 18) {
        $msg = "Good afternoon!, ";
    } elseif (19 <= $h && $h <= 22) {
        $msg = "Good evening!, ";
    } else {
        $msg = "Good night!, ";
    }
    return $msg;
}

date_default_timezone_set('Asia/Tokyo');
$d = getdate();
$h = $d["hours"];

$msg = createMessage($h);

print($msg . $_POST["whom"]);


createMessage関数のDocBlockを記述したPHPコード

 次に、ファイルレベルのDocBlockを記述しておこう。これも上と同様な手順で行えばよい。「/**」を入力して[Enter]キーを押した直後の画像を以下に示す。

ファイルレベルのDocBlockを作成した直後
ファイルレベルのDocBlockを作成した直後

 phpcsにより、ファイルレベルのDocBlockに足りない要素(タグ)が列挙されているのが分かる(ウィンドウ下部の[問題]タブ)。そこで、これらを追加していくのだが、このときにはタグの補完をしてくれる。

PHP DocBlockerによるタグの補完
PHP DocBlockerによるタグの補完

 不足しているタグを記述したものが以下だ。

<?php
/**
* PHP Sample
*
* PHP Version 7
*
* @category  Sample
* @package   Sample
* @author    insider.net <insidernet@example.com>
* @copyright 2018 Insider.net
* @license   https://opensource.org/licenses/mit-license.php MIT
* @link      http://www.atmarkit.co.jp
*/

/**
* Create hello message
*
* @param string $h hour to make message.
*
* @return string hello message depended on hour.
*/
function createMessage($h)
{
  // …… 省略 ……
}

// …… 省略 ……


完成したファイルレベルのDocBlock

 このように、PHP DocBlocker拡張機能を使うことで、DocBlockの記述も容易に行えるようになる。前回紹介した、PHP IntelliSense拡張機能とPHP Debug拡張機能に加えて、これらを活用することで、VS CodeとPHPを利用した開発がずいぶんと楽になるだろう。

 本稿の最後に、ちょっとしたタイミングで役に立ちそうな拡張機能をもう一つ紹介しよう。

Code Runner拡張機能

 Code Runner拡張機能は、PHPに限らず、さまざまなプログラミング言語のスニペットをVS Code内で実行してくれるものだ。ちょっとしたコードを試してみたいといったときに便利に使える。

 この拡張機能をインストールすると、VS Codeのエディタ(タブ)を表示する領域の右端に三角形のボタン([Run Code]ボタン)が表示されるようになる。

Code Runner拡張機能をインストールすると、ウィンドウ右上に[Run Code]ボタンが追加される
Code Runner拡張機能をインストールすると、ウィンドウ右上に[Run Code]ボタンが追加される

 例えば、以下のようなコードを書いたとしよう。

<?php
class Person
{
  private $name;
  private  $age;

  public function show() {
    print "name: " . $this->name . ", age: " . $this->age;
  }

  public function __construct($name, $age)
  {
    $this->name = $name;
    $this->age = $age;
  }
}

$p1 = new Person("insider.net", "50");
$p1->show();


サンプルのPHPコード

 Code Runner拡張機能でこのコードをテストするには、先に述べた[Run Code]ボタンをクリックするか、エディタのどこかを右クリックしてコンテキストメニューから[Run Code]を選択する。これにより、ウィンドウ下部に[出力]タブが開かれ、そこにコードの実行結果が表示される。

Code RunnerによるPHPコードの実行
Code RunnerによるPHPコードの実行

 「このコードをちょっと試しておきたいな」といったときに、便利に使えるはずだ。


 前回に紹介した拡張機能に加えて、今回紹介した拡張機能を利用することで、VS CodeでのPHPプログラミングがさらに快適になるはずだ。

「Visual Studio Code+PHPの可能性を探る」のインデックス

Visual Studio Code+PHPの可能性を探る

Copyright© Digital Advantage Corp. All Rights Reserved.

前のページへ |       
ページトップに戻る