PHPエコシステムに長年関与してきたことで知られるコントリビューターが JetBrains に入社。PhpStorm チームとともに PHP 言語とエコシステムの改善を目指す。
BASE株式会社 Product Dev Division ソフトウェアエンジニアの田中(@tenkoma)です。主にPHPアプリ開発を担当しています。 BASEでは、PHPアプリ開発で使うエディタに制限はありませんが、希望する人はPhpStormを使えます。 PhpStormは設定を全くしなくてもかなり快適に使えると思いますが、多少設定するとより快適になります。 この記事では主に、開発環境とIDEを連携させアプリケーション開発をスムーズに始めるため、以下の設定について紹介します。 Xdebugと連携してリモートデバッグを可能にする PHPUnitと連携してテストをIDEから実行可能にする PHP_CodeSnifferを使ってコーディングスタイルを適用する EditorConfigを追加してコーディングスタイルを開発者で共有可能にする Xdebugと連携してリモートデバッグを可能にする
IntelliJ・WebStrom・PhpStorm等のJetBrains製IDEで、文字列の直前に「language=JSON」と書くと、その文字列にJSONのシンタックスハイライトが効いて便利だった。JavaPHPJavaScriptPhpStormIntelliJ IntelliJやWebStrom、PhpStormなどのJetBrains製IDEで、文字列の前に// language=JSONというコメントをつけると、IDEが文字列をJSONとして認識してくれるため、 JSONとしてのシンタックスハイライト JSON構文エラーの警告 JSONのコード補完 コード整形 といった、地の文でJSONを書いたときにIDEがやってくれるような恩恵を享受できるようになる。 この機能はLanguage Injectionと呼ばれるもの。コメントが書ける大抵の言語なら、JavaでもPHPでもJav
この記事はPHPStan開発者のOndřej Mirtesによって2019年12月2日に書かれた記事を翻訳したものです。記事の末尾には訳者(@tadsan)の観点によるPhan, Psalm, PhpStormとの互換性についての情報も記述しています。 medium.com 2年前、私(Ondřej Mirtes)はユニオン型と交差型についての衝撃的な記事を書きました。PHPコミュニティがこれらの概念に馴染むのを手助けし、PhpStormでの交差型サポートにつながりました。 ユニオン型と交差型の違いは開発者が認識すべき静的解析に役立つ重要な概念なので、私はその記事を書きました。今回は同様に、PHPStan 0.12で導入されたジェネリクスについて、それが何であるかを説明したいと思います。 無限のシグネチャ 関数宣言するとき、我々は関数に付属する単一のシグネチャを書いていました。ほかの選択肢
こんにちは。小林です。 単刀直入に言いますと、この記事を読むと「Docker+WordPress」の環境でXdebugを使えるようになります。早速ですが説明していきます。 はじめに まず私の開発環境の紹介です。 (マシンは6年前にフルスペックだった)MacbookPro (IDEがないと何もできないので個人的に最強のIDEだと思っている)PhpStorm (いろんな開発を並行するのでとっかえひっかえしやすい)Docker と、こんな環境で普段開発をしているのですが、久しぶりに大規模なWordPress案件に携わることになりました。 その案件では、馴染みのないプラグインを多数入れたり、そもそも最新のWordPressの機能を把握できていなかったりと、いくらPhpStormを利用しているといえども、それぞれの機能を追うのがなかなか難しい状況でした。 そこで、久しぶりにXdebugを頼ることを決
ここのところ、Nuxt.jsを試しているのですが、PhpStorm環境でコーディングしていると、コード中にESLintからのエラーメッセージがあふれます。 敬愛するPhpStormさんなら、ReformatショートカットでESLintのフォーマットでReformatしてくれるかと期待しましたが、残念ながら適用されず。 ESLintフォーマットで調整したものをうっかりReformatしてしまうと、ESLintフォーマットが破棄されてPhpStormで設定しているフォーマットでRefomatされてしまします(´・ω・`;) なんとか、ESLintでReformatしてくれないものかと、情報を探していたら、以下のページを見つけました。 How to make WebStorm format code according to eslint? 以下、ESLintフォーマットでReformatしたい
前回は、こちらの記事でDocker + WordPress + Xdebugな環境を作りました。 今回は、そこからさらにPhpStormでステップデバッグを実行できるようにしていきます。 Docker + WordPress + Xdebugの準備 はじめに、前回のDockerfileに少し手を加え、Xdebugの設定ファイルを利用できるようにします。なお、今回からはdocker-composeを利用していきますので、まずはディレクトリ構造を下記のように準備してください。PhpStormでプロジェクトを作成し、以下のようにファイルとディレクトリを用意します。 続いてxdebug.iniの中身です。 #xdebug.ini zend_extension=xdebug # Xdebugをどのモードで動かすか? # ※これはプロセス起動時のみ設定可能なのでここでしか指定できません。 # 初期値は
PHPStan (PHP Static Analysis Tool)はコードを実行せずに検査できるツールです。本稿では業務アプリケーションにPHPStanを導入するまでに押さえておきたい事柄を記述します。 導入 PHPStanは本稿記述時点の1.9.x系において、PHP 7.2以降で実行できます。PHPStanは composer require --dev phpstan/phpstan でのインストールが基本です。 プロジェクトルートの phpstan.dist.neon に、以下のように記述してください。 pathsには実際にPHPファイルが格納されているディレクトリを指定しましょう。たとえばフレームワークによっては app inc public のようなディレクトリに配置されているかもしれません。 levelは現在のところ1〜9が定義されており、文字列の"max"を指定することで将
情報が古くなったため、記事を修正してブログに投稿しました。 前編:WSL2、Dockerの設定 後編:PhpStormの設定 ※ 下記は古い情報となります。 はじめに Windowsでの開発環境構築の面倒さやDocker for windowsでのビルドの遅さに嫌気がさし しばらくLinuxに逃げていましたが、WSL2に興味を惹かれて開発環境を作ってみました。 現在メインに使っているPhpStormでLaravel開発環境を設定する手順についてまとめています。 概要 PhpStorm(Intellij IDEA)からWSL2のDockerコンテナ内のPHPをリモートインタープリターで設定し、ついでにXdebug、PHPUnitの設定も行います。 Windows 10 professional バージョン1903(OSビルド 19018.1) WSL2:Ubuntu 18.04 PhpSto
質問 キー入力の取りこぼしや重複、日本語がうまく入力できない、貼り付け時に二重にペーストされるといった不具合が発生して不安定です。 回答 以下の通り、JBR8を適用すると安定します。 1. Choose Runtimeプラグインをインストールします Settings / Preferences → Plugins → Marketplaceの検索フィールドで"choose runtime"と入力してChoose Runtimeプラグインをインストールします。IDEやバージョンによってはデフォルトでインストールされている場合があります。 2. 必要に応じてIDEを再起動し、Shift + Cmd + A(Find Action)を押し、アクション検索ダイアログが現れたら"choose"と入力し、現れるプルダウンより"Choose Runtime…"を選択します。 3. Choose Runt
はじめに PHPでのXDebugによるデバッグ環境構築は、セットアップの手数が多く慣れていないと苦戦してしまうことが多いです。 いつも試行錯誤しながら何となく動作させていたのですが、苦手意識を無くすため時間をとってステップを追って仕組みを理解しました。 同じような方も多いかと思いますので備忘録として検証手順を書いておきます。もし間違えている部分があったらコメント欄でやさしく教えてください。 環境 検証は、下記環境で実施しました。 PHPのコンテナはapacheを使っていますがphp-fpmでも基本は同じです。 ホストOS macOS Monterey Docker Desktop for Mac: 4.3.2 PhpStorm 2021.3.2 Build #PS-213.6777.58, built on January 31, 2022 Dockerイメージ php:8.0-apach
はじめに WindowsでPHPなどの開発をしていると色々トラブルに見舞われます。 WSL2やWindows terminalの登場で、端末環境はほぼLinux同等のものが動くようになりました。 しかし、コード編集にWindows側のIDEを使おうとすると色々トラブルに見舞われます。 (Dockerの実効速度とか、Git管理時のパーミッション問題とか) それらはLinuxマシンを使えば解決することですが、Windowsマシンを使いたい。。。 今回はWSL2に開発ツールを詰め込みX-Server経由でGUI操作することで、Windowsの依存性を限りなく減らした環境を作成します。 補足 VSCodeを使用する場合はX環境を設定しなくても、Remote Develop機能でWSL2内の環境を直接操作できると思います。 また、Windowsのファイルエクスプローラで\\wls$\ubuntu-2
JavaScriptのプログラミングはこれだけ効率化できる! 使用歴5年目のエンジニアが送るWebStormの厳選神業集 JavaScript(ES 2015+)、TypeScript、Babelの需要は高まる一方ですが、プログラミングの効率化をどれくらい意識していますか? プログラミングが効率化されれば、作業時間の短縮、ケアレスミスの軽減、プロダクトの品質の向上、そしてストレスの軽減に繋がります。 筆者が5年間使用している「WebStorm(ウェブストーム)」は、JavaScriptのプログラミングをする上での面倒な処理をほとんど自動化するための機能が揃っていて、ロジックの検討や表現の作り込みに時間を割けるようになります。 本記事では、多くの機能の中からとくに便利だと感じるものをピックアップして紹介します。WebStormを使ったことがない方も、「この作業はツールで自動化できるのか」とい
Laravel 職人の皆さん、PHP Doc 書いてますか? 「静的解析バリバリやってるぜ!」 という方は是非ブラウザバック願います。 この記事は、Laravel での開発をちょっと快適にする、PHP Doc の書き方をご紹介します。 先日開催されたPHPカンファレンス2021 の、 とあるセッションに触発されて走り書きした雑な記事ですが、 少しでも誰かのお役に立てば。 実験環境は以下のとおりです。 VisualStudio Code 1.60.2 PHP Intelephense 1.7.1 Laravel のバージョンは、たぶん関係ありません。 とりあえずコード書こうぜ の前に事前準備 サンプルとして、こんなテーブルがあるとします。 宗教上の理由でテーブル名に m_ とかついてたり、 プライマリーキーが xxx_id とかなってますが、悪しからず。 これに対応するモデルは、だいたいこん
概要 Xdebugを使ってみたので、分かったことや分からないままのことをまとめました。 (2021/8/18追記:Xdebugはコードリーディングが辛いときに利用したくらいで、記事を投稿した時期以降は利用していません。コードを読むのに慣れてくるとXdebugが無くてもなんとかなります。Xdebugを利用すると動作が遅くなることがあるので、導入の際には十分検討してください。) ※設定については、Dockerを利用している前提で説明します。 PhpStormの機能については、PhpStormでステップ実行するならどんな環境でも参考になると思います。 (InteliJについて書かれた記事も参考にしたので、JetBrainsのIDEを利用しているなら大体同じかもしれません) Dockerについて この一連の記事が分かりやすいので参考にしてください。 【Docker Compose】設定内容を1行ず
プログラムや設定を何度確認しても間違いがないはずなのに、IntelliJ上でコンパイルエラーが出続けたり、ファイルがうまく認識されなかったりということが稀によくあります。 これはどうも、IntelliJが持っているキャッシュや設定ファイルが悪さをしているようなので、これらを削除するとうまく動作するようになります。 環境 IntelliJ IDEA Ulitimate Edition 2023.1.2 macOS Ventura 13.4.1 ①キャッシュの削除 [ファイル]-[キャッシュの破棄]です。 そして、全てチェックを入れて[破棄して再起動]してください。 再起動の後にキャッシュやインデックスの再作成が行われるので、数分間かかります。 運が良ければ、この作業だけでOKです。 ②プロジェクトの設定ファイルの削除 キャッシュの削除をしてもエラーが消えない場合は、下記の手順で設定ファイルを
先に結論 もうタイトルがそのまま結論であまり語ることもないのですが、いままでPhpStormを日本語化する場合は、Pleiadesの日本語化プラグインを使っていた人がほとんどかと思われます。わたしもそうでした。 しかし、今はアプリケーション内から直接導入できるJetBrains純正の「Japanese Language Pack」を使うのがいいようです。 JetBrainsデスクトップ製品の日本語化 https://samuraism.com/jetbrains/localization (現在アーリーアクセス版とのことですので、使用の際はご注意ください。) なんとすばらしい。安定性の向上や高速化も期待できます。まだ使い込んでいませんが、おそらく大きな問題はないでしょう。PhpStormに限らず、PyCharmやRubyMine含めたJetBrainsデスクトップ製品のほとんどすべてが対応
Table of Contents はじめに どんなプラグインを作ったのか? Markdownの機能を拡張するプラグインです。 なぜ作ったのか? 2つ理由があります。 必要な機能を搭載した既存プラグインがなかった 今年に入って、Markdown編集に使う主なエディタをVS CodeからIntelliJ IDEAに移行しました。 移行した理由は以下です。 VS Codeは動作がもっさりしている Vimアドオンを使用した場合 頭の切り替えが面倒 開発物のREADMEを書くときはIntelliJ IDEAを使うので しかし、IntelliJ IDEAとプラグインでは必要なMarkdown編集機能が不足していました。 VS Codeを使っていたときはアドオンを利用したり、自作アドオンで解決してきたのに。 Kotlinで開発がしたかった 前からKotlinが気になっていましたが、本当に必要なケースに
本ページに直接来た方はWSL2+docker+PHPのWindows開発環境構築(1) WSL2編から読んでね。 ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪ ------------------- ↓ 余談はここから ↓------------------- 関連記事: Bash on Ubuntu on Windowsを使う(1) Bash on Ubuntu on Windowsを使う(2):初期設定 Bash on Ubuntu on Windowsを使う(3):WindowsからLinuxを使う WSL2+docker+PHPのWindows開発環境構築(1) WSL2編 WSL2+docker+PHPのWindows開発環境構築(2) docker編 WSL2+docker+PHPのWindows開発環境構築(3) PHPStorm編 ← イマココ 前回docker起動までいけ
Releases PhpStorm 2020.3: PHP 8, PHPStan and Psalm, Xdebug 3, Tailwind CSS, and Collaborative Development PhpStorm 2020.3 is now available! This major release includes full support for PHP 8, static analyzers PHPStan and Psalm, Xdebug 3, Tailwind CSS, collaborative development via Code With Me, and much more. Download PhpStorm 2020.3 Read on for details on all the new features and significant upda
私はnodeのバージョン管理にnodenvを利用している。しかしなぜかIntelliJ IDEAのNode.js and NPMでnpmのパスが認識されずに困っていた。 環境変数の問題かといろいろ設定を見直したりしていたが、別にそこまでnodeを使うわけでもないので、まあいいかと放置していた。が、今日調べてみたらそれを解決するツールがあったので紹介しておく。 単にこれを導入すればオッケーというだけの話で終わってしまうのだけれど。 https://github.com/nodenv/jetbrains-npm 私はnodenvをデフォルトの設定でインストールしているので、jetbrains-aware git cloneの手順に従ってインストールした。結果、無事にIntelliJ IDEAにnpmのパスが認識されるようになった。 スターがあまりついていないので、あまり知られていないのか、それ
Laravel プロジェクトを作成すると、自動でgitignoreも作成されます。 デフォルトで記述されているディレクトリ・ファイルは以下のようになっています。 /vendor /node_modeules /public/storage Homestead.yaml Homestead.json これらは最初から管理対象から外されます。 しかし開発を進めていくと、途中から上記以外にも管理対象から外したいファイルが出てきます。 この場合、gitignoreに追記するだけでは足りません。 作業ツリーに残ったままになってしまうのです。 今回はそんなケースについての対応をエントリーします。 ユースケース Git でバージョン管理していたファイルを残したまま追跡の対象外にしたい。 しかし既に管理対象になっているファイルは、後から.gitignoreにファイル名を追加しても変更の追跡が継続される。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く