PhpStorm でファイル作成時にコードテンプレート使うと少し捗るよ (IntelliJ とかも同じはず。)
PhpStorm (IntelliJとかも) に、 Project Tree などから、コンテキストメニューを呼び出し、そこから指定のファイルを作成する機能があります。(あるいは、 cmd + n
)
こんなやつ。
例えば、 "PHP Class" を選べば、以下のようなダイアログが出てきます。
この画像の例は laravel を使った Project なので、 composer.json から適切に NameSpace 等を読み込んで事前に入力済み状態になっています。
で、例えば、 Name
に HogeController
と入力して OK
を押すと以下のようなファイルが生成されます。
<?php
/**
* Created by PhpStorm.
* User: hokutoasari
* Date: 2019-03-07
* Time: 12:28
*/
namespace App\Http\Controllers;
class HogeController
{
}
これはこれで良いのですが、 Code Template を使うことで、もうちょっと便利になります。
Code Template を設定して使ってみる
Preferences
-> Editor
-> File and Code Templates
を開きます。
で、例えば、 "PHP Class" を以下のように編集します。
<?php
declare(strict_types=1);
#if (${NAMESPACE})
namespace ${NAMESPACE};
#end
final class ${NAME} {
}
こうしておくと、さっきの cmd + n
から "PHP Class" を選択して生成されるコードが以下になります。
<?php
declare(strict_types=1);
namespace App\Http\Controllers;
final class HogeController
{
}
declare(strict_types=1);
を先頭に入れて、 namespace
を入れて、 class には final
修飾子を付けて、といった具合に Code Template に指定した内容に従って生成されます。
他にも使える値が Code Template の設定画面に書いてあるので、お好みの設定にすると捗る。
ご参考までに
ちなみに、僕は以下の設定を行っています。
PHP File
<?php
declare(strict_types=1);
PHP Class
<?php
declare(strict_types=1);
#if (${NAMESPACE})
namespace ${NAMESPACE};
#end
final class ${NAME} {
}
PHP Interface
<?php
declare(strict_types=1);
#if (${NAMESPACE})
namespace ${NAMESPACE};
#end
interface ${NAME} {
}
PHP Trait
<?php
declare(strict_types=1);
#if (${NAMESPACE})
namespace ${NAMESPACE};
#end
trait ${NAME} {
}
PHPUnit Test
<?php
declare(strict_types=1);
#if (${NAMESPACE})
namespace ${NAMESPACE};
#end
#if (${TESTED_NAME} && ${NAMESPACE} && !${TESTED_NAMESPACE})
use ${TESTED_NAME};
#elseif (${TESTED_NAME} && ${TESTED_NAMESPACE} && ${NAMESPACE} != ${TESTED_NAMESPACE})
use ${TESTED_NAMESPACE}\\${TESTED_NAME};
#end
use Tests\Unit\TestCase;
final class ${NAME} extends#if(${NAMESPACE}) TestCase #else PHPUnit_Framework_TestCase #end{
}
./tests/Unit/TestCase.php
を用意して、 Unit Test に必要そうな便利メソッドをここに書いてるので、 use Tests\Unit\TestCase;
して、 extends TestCase
となるように書いてます。
デフォルトの laravel Project 状態なら use Tests\TestCase;
で良いんじゃないかな。
おまけ
cmd + n
で表示させて状態で、おもむろに "php" とか入力するとインクリメンタルサーチになって便利ですよ。
Author And Source
この問題について(PhpStorm でファイル作成時にコードテンプレート使うと少し捗るよ (IntelliJ とかも同じはず。)), 我々は、より多くの情報をここで見つけました https://qiita.com/hokutoasari/items/4aee970852bff2415b35著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .