カテゴリーアーカイブ エディタ

著者:杉浦

【PhpStorm】PhpStormのショートカットキーを覚えるためのプラグインKey Promoter X

Key Promoter X – Plugins | JetBrains
 Key Promoter Xは何らかの操作を行った際、その操作に対応するショートカットキーがあるならば、そのショートカットキーを通知するプラグインです。これを用いることでPhpStormをより効率的に使えるようになります。
 具体的に何をするかというと次のgifです。

引用元:Key Promoter X – Plugins | JetBrains
 コマンドを打ち込むとやかましいくらい通知が出ます。ショートカットキーによる操作を心がけることで、このうっとおしい通知を減らします。この心がけが長く続くと、知っている操作をほとんどショートカットキーで行う様になります。
 このプラグインは知っている操作をよりうまく行うための矯正具です。真により上手くPhpStormを使えるようになるためには、このプラグイン以外に頼るのみでなく、知らない操作を吸収していくことが更に必要になります。

  • この記事いいね! (2)
著者:杉浦

【PhpStorm】Gitの範囲差分操作

 PhpStormはコーディング画面のままGitに関連した便利な操作ができます。画像の様な差分を表す部分をクリックすると変更前のコードが現れます。ここからショートカットで色々できます。

 よく使うのが差し戻しとコピーです。差し戻しは次のgifの様に戻るアイコンをクリック。この部分だけgitのhead部分のコードに戻せます。

 コピーはgifのようにメモアイコンをクリック。変更前後の動作の比較などに便利です。

 他にも差分へ移動、詳しい変更点の強調など細やかな操作が可能です。

  • この記事いいね! (0)
著者:杉浦

【PhpStorm】PhpStorm、PyCharm等JetBrains製IDEの公式マニュアル

JetBrains公式マニュアル日本語版 – 使い方から高等テクニックまで
 上記リンクはリンク名の通りJetBrains製IDEの公式マニュアルサイトです。このサイトなかなかくせものでGoogle検索の優先順位が内部ページのほとんど(少なくとも知る限り全部)より低く見つけにくいです。
 内部ページの多くは個々のIDEのヘルプです。例えば、次の画像の様にIDE名でググるとそのIDEについてのヘルプページが現れます。大体これです。


 優先されない本体側に何があるかというと、ショートカットキー一覧のPDFと

PhpStormのショートカットキー一覧
 新機能の紹介です。
 PhpStorm の新機能 – 究極の進化を遂げた最強の PHP 開発環境

 何かしらIDEの中身が新しくなるたび、このページにデモ付きで機能紹介がされます。過去の機能に関しては今までのユーザが重要なモノを抽出して紹介していることがほとんどですが、最新の機能となるとなかなかありません。
 最新版で明示的に特に役に立っている機能はgifにある”最近使用したロケーション・ポップアップ”です。この機能の特徴的な点はロケーションがファイル単位でなく数行単位で定まっている点です。この機能を使うと一ファイル中をあちこちに飛び回っても移動が苦になりにくいです。具体的には$this->やthis.の連なりや、万能ツールと化したファイルを読む時、特に役に立ちます。

  • この記事いいね! (1)
著者:杉浦

【PhpStorm】よりGitを意識するようになるプラグインGitToolBox

GitToolBox – Plugins | JetBrains
 GitToolBoxはPhpStormのプラグインのひとつです。プラグイン自身の説明にはこうあります。

Status display, auto fetch, inline blame annotation, commit dialog completion, behind notifications and more…

 要はGit周りの色々な機能を追加する、というものです。これを入れると今どのブランチにいるのかわかりやすくなったり、定期的なフェッチにより不意の衝突を軽減できたりします。特に変化が起きるのが次の図の赤丸部分です。


 Gitのコミットメッセージがインラインコメントとして表示されます。これによって、あるコードが現在の形になっている理由を端的に知れます。詳しく知るにはファイル単位の履歴なり、全体の履歴なりを追うべきですがコミットメッセージが適切ならばこれでわかります。
 わざわざ見に行かなければわからなかったコミットメッセージがこうもコードの間近で頻繁に見るようになると雑なコミットはもう出せません。推敲に身が入ります。

  • この記事いいね! (1)
takahashi 著者:takahashi

EclipseのDBViewerPluginでMySQLに接続する方法

以前の記事でEclipseにDBViewerPluginをインストールする方法についてご説明しました。

今回は実際に接続できるようにするところまでご説明したいと思います。

前回の時点で下記の画像のようにDBViewerPluginが表示されているかと思います。

左上の”DBViewerPlugin”を右クリックし、”登録”をクリックします。

すると、下記のようなウインドウが開きます。

ここで、EclipseがDBを直接扱えるようにするための”ドライバ”を指定する必要があります。

今回はMySQLを例にして説明します。
MySQLのEclipse(Java)用のドライバは下記URLから入手できます。

Download Connector/J – MySQL

Windowsの場合はzip形式の方が扱いやすい(専用ソフトなしで解凍できる)と思います。

ダウンロードしたら、Eclipseからいつでも参照できる場所に保存します。
(自分の場合は、Eclipseのフォルダの中に”drivers”フォルダを作成してそこに配置しました。)

ドライバを配置したら、Eclipse上の先ほどの画面で”ファイルの追加”をクリックし、ドライバの場所を指定します。

ドライバを指定したら次へをクリックします。

JDBC Driverに”com.mysql.jdbc.Driver”を選択します。

OKをクリックします。

すると接続文字列にサンプルの文字列が入るので、<host>の部分をMySQLサーバーのホスト名、<database>の部分をDB名にそれぞれ置き換え、さらにMySQLのユーザー名とパスワードを入力します。

ここまで出来たら”テスト接続”をクリックしてエラーが出なければ接続設定はOKです。

次へをクリックします。

最後に接続設定(読み込むテーブルや文字コードの指定など)が出てくるので、必要があれば指定し、完了をクリックします。

これで設定は完了です。
この時点でEclipse上からDBへのアクセスが可能になっているかと思います。

EclipseでMySQLをお使いの方は参考にしてみてください。

  • この記事いいね! (0)
著者:杉浦

【PhpStorm】PhpStormの提案するコードの簡略化

 PhpStormはAlt+EnterでPhpStormからコードをよりよくするための提案をしてくれます。例えば次です。

 厳密な比較を行うための第3引数を提案してくれました。この機能は様々な場所で働きます。例えばテストのAssertならば次の様に最もふさわしいAssert関数を提案してくれます。

 この提案機能はプラグインでも実装されており、次の二つが多くの人にダウンロードされ評価も高かったです。
kalessil/phpinspectionsea: A Static Code Analyzer for PHP (a PhpStorm/Idea Plugin)
SonarLint – Plugins | JetBrains
 phpinspectionseaはPhp Inspections(EA Extended)という名前でマーケットに並んでいます。EAは適度に警告、提案をしてくれます。EAはとりあえず入れるのにおすすめです。SonarLintは厳密ですが、誤報率も高いです。SonarLintがちがちに書くなりルールを無効化するなりしながら記述することになりますが慣れてくると便利です。

  • この記事いいね! (1)
著者:杉浦

【PhpStorm】インターフェイスとPhpStormで一貫性のあるコードを量産する

 インターフェイスはあるクラスが実装するべきメソッドを定義する仕組みです。あるクラスにおいてインターフェイスを用いると宣言したにも関わらず、インターフェイス内で定義したメソッドが足りないならばエラーになります。
PHP: オブジェクト インターフェイス – Manual
 例えば次のインターフェイスならば

use Illuminate\Database\Eloquent\Builder;

interface Searchable
{
    public function scopeSelectForSearch(Builder $query): Builder;
    public function scopeWhereForSearch(Builder $query, array $search_criteria): Builder;
    public function scopeSortForSearch(Builder $query, array $sort_option): Builder;
}

 次の様に実装を強要できます。

use Illuminate\Database\Eloquent\Builder;

class Hoge implements Searchable
{
    public function scopeSelectForSearch(Builder $query): Builder
    {
        // 検索用select文クエリ構築
        return $query;
    }

    public function scopeWhereForSearch(Builder $query, array $search_criteria): Builder
    {
        // 検索用where文クエリ構築
        return $query;
    }

    public function scopeSortForSearch(Builder $query, array $sort_option): Builder
    {
        // 検索用order byt文クエリ構築
        return $query;
    }
}

 インターフェイスはコーディングの自由度を下げる仕組みです。一定の制約を設けることによって一貫性を持ったコーディングを実現します。例のSearchableインターフェイスを実装したクラスならば、必ずBuilderクラスないしBuilderクラスを継承したクラスのインスタンスを引数にするscopeSelectForSearchメソッドが存在し、そのscopeSelectForSearchメソッドからはBuilderクラスないしBuilderクラスを継承したクラスのインスタンスが返ってくる、と保障されます。一人で小さいプログラムを組んでいるときには開発速度の障害であり無縁な方が良い位の仕組みですが、相手の頭の中を簡単に知れない多人数開発であったり記憶が飛ぶ様な大規模開発では、インターフェイスによるクラス設計がソースコードの破綻を防ぎます。

 インターフェイスは便利な仕組みですが、インターフェイスで定義された決まりきった構文をいちいち書いたりコピペして直したりするのは面倒です。PhpStormにはこれを自動で記述する仕組みが備わっています。
 
 Alt+Insert→メソッドの実装→実装するメソッドを選択→OK、で宣言がずらっと並びます。便利です。PhpStormのAlt+Insertからは他にも決まりきった文字列を色々出力できます。例はPHPですがJavaScriptにも対応しています。

  • この記事いいね! (0)
takahashi 著者:takahashi

eclipseにDBViewerPluginを追加する方法

無料のIDEであるeclipseですが、実はデフォルトではDBに接続・操作する機構を持っていません。
eclipse上からDBへ接続できるようにするには、プラグインを追加する必要があります。

ただ…

“新規ソフトウェアのインストール”ではリポジトリにパッケージがないため、インストールすることができません。

じゃあどうすればいいんやと困って探していたところ、こちらのサイトを発見。

DBViewerをEclipse2018-12で使用したい!! – Qiita

どうやら、DBViewerPluginを単体で入手して、eclipseのプラグインフォルダに突っ込めばいいとのこと。

まず、下記サイトからDBViewerPluginをダウンロードします。

DBViewer Plugin for Eclipse 開発プロジェクト – OSDN

バージョンはなるべく新しめの方がいいと思います。

上記サイトからプラグインのjarファイルを入手したら、これを

eclipseインストールディレクトリ/eclipse/plugin

に入れます。

eclipseに適用させるために、一旦eclipseを終了し、eclipseの本体が入っているディレクトリにある

eclipse.exe -clean.cmd

を実行します。

すると、キャッシュを一度削除したうえでeclipseが立ち上がります。

この状態で画面右上の”パースペクティブを開く”をクリックします。

すると、下の画像のようなウインドウが開きます。

一覧の中に”DBViewer”が追加されていれば成功です。

なお、実際にデータベースと接続するには、別途ドライバーが必要になります。

この辺りの設定方法についてはまた後日ご紹介します。

  • この記事いいね! (1)
著者:杉浦

【PhpStorm】PhpStorm上でコードの一部分のみGitを辿る

 PhpStormはGitを上手く扱えるIDEです。単にGitの操作と木を見るのみでなく、フックやテンプレートも用意しています。


【PhpStorm】PhpStormでpre-commitのGitフック
 PhpStormはGitを読みやすくする機能も備えています。その一つがコードの一部分のみのGit Historyの表示です。操作はコードを選択して右クリック、Git→選択のヒストリーを表示、とするだけです。

 すると次の様に選択部の変更のみのGit Historyが見えます。

 この機能を使うとGitの中をひーこら検索する必要がずいぶん減ります。特に歴史あるリポジトリの一部分を追う時、過去の変更に差し戻す時に活躍します。

  • この記事いいね! (1)
著者:杉浦

【PhpStorm】PhpStormで重複コードを抽出する

 とりあえずざっと書いて後からリファクタするというコーディング方法があります。このコーディング方法においてリファクタの際には見通しをよくするほか、コピペした部分などの重複したコードをまとめる作業もよくやります。PhpStormにはこの重複コードをまとめる作業の精度を上げる機能があります。
 次の画像にある重複の分析を選ぶとPhpStormはコードを解析しコードの重複を見つけ出します。

 見つけられた重複は次の様にコードが表示されます。この画面から直すべき重複が分かります。コストは複雑さと量によって計算されています。余り軽いとまとめる程でもないことがしばしば現れます。閾値は個々の調整に依りそうです。
重複の分析 – 公式ヘルプ | PhpStorm

 対象の重複範囲を選択し図の様にリファクタリング→メソッドの抽出を選びます。すると関数のオプションを決める画面が現れます。
メソッドの抽出 – 公式ヘルプ | PhpStorm


 この関数オプションを決定した後にリファクタリングを実行すると、次の画像らの様に関数にまとめられます。


 このまとめられた関数の配置をそのままなり、traitなり、他クラスなり、親クラスにして他の重複部分から呼び出すことによって重複コードのリファクタリングが成ります。重複が同ファイル内にあるならばPhpStormがよしなにまとめてくれます。

  • この記事いいね! (0)