PHPエコシステムに長年関与してきたことで知られるコントリビューターが JetBrains に入社。PhpStorm チームとともに PHP 言語とエコシステムの改善を目指す。
この記事は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
はじめに 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のパスが認識されるようになった。 スターがあまりついていないので、あまり知られていないのか、それ
マナリンク CTOの名人です。 以前マナリンクのフロントエンド開発環境をまとめました。 https://www.wantedly.com/companies/noschool/post_articles/310301 今日は続編として、フロントエンド開発時のIDE(PHPStorm, VSCode)の設定周りについて書いていきます。 普段私はPHPStormを主に使っています。 あまりに便利なので年間1万円ほどを支払う価値は存分にあると思います。 PluginPHPStorm(というか、IntelliJ周辺)には多くのプラグインがありますが、その中でもフロントエンド周りのプラグインを紹介します。 Prettier コードの整形ライブラリとして有名なPrettierですが、エディタにIntegrateすることで、保存時だったり、キーボードショートカット経由でフォーマットを実行できます。 保存
【PhpStorm】よりGitを意識するようになるプラグインGitToolBox 2019年4月23日 2019年4月23日 PhpStorm GitToolBox – Plugins | JetBrains GitToolBoxはPhpStormのプラグインのひとつです。プラグイン自身の説明にはこうあります。 Status display, auto fetch, inline blame annotation, commit dialog completion, behind notifications and more… 要はGit周りの色々な機能を追加する、というものです。これを入れると今どのブランチにいるのかわかりやすくなったり、定期的なフェッチにより不意の衝突を軽減できたりします。特に変化が起きるのが次の図の赤丸部分です。 Gitのコミットメッセージがインラインコメントとして表
[WordPress]PHPCodeSniffer(phpcs)でWPコーディング規約をチェック&自動整形できるようにするPHPWordPressphpcsphpcbf ちゃんとしようと思い、WordPressコーディング規約をちゃんと学び始めました。 でも自分で間違いを探し出すのはとっても大変だとうなだれてたら、構文エラーをチェックでき、自動整形もしてくれる方法を知ったので忘れないうちにまとめておきます。 野性味のあるまなちゃんも貼っておきます。 かわいい。 WordPressコーディング規約(WordPress Coding Standard)とは WordPressには、コーディング規約がある。 コーディング規約はCSS、HTML、JavaScript、PHPと言語ごとに存在する。 CSS コーディング規約 - WordPress Codex 日本語版 HTML コーディング規約 -
ツイート ブックマーク Docker composeでそれっぽい環境を用意して、xdebug動かしてみたよって話です。 docker-composeの定義 こんな感じです。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 version: "3" volumes: db-store: services: db: image: postgres:11 volumes: - db-store:/var/lib/postgresql/data environment: POSTGRES_USER: root POSTGRES_PASSWORD: root POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
LaravelLaravel is a free, open source PHP web application framework. It is built on top of several Symfony components, and makes common tasks such as authentication, routing, sessions and caching much easier to implement. Before you start working with Laravel, make sure that either of the following plugins are installed and enabled: Laravel plugin (free) and Laravel IDE helper tool. Laravel Idea (
Written byBy Matthew Setter. Published on Wed, Mar 10, 2021. Estimated reading time: 8 minutes In versions of Xdebug before version 3 setting up step debugging for code inside Docker containers has often been challenging to say the least. However, in version 3 it’s become almost trivial. In this short tutorial, I’ll step you through what you need to do, regardless of the (supported) text editor or
PHPStorm を使い初めたのですが、Laravel においてコード補完が働かない場合がちょくちょくあります。 例えば、php artisan make:model Worldで作成した World クラスに関して、Controller で World::where(~) と書くと、Method where not found ~といった警告が PHPStorm で出ます。 出るのですが、このコードは正常に動作しますし、公式ドキュメントでもこの書き方が例として書かれています。 World クラスの親クラスである Model クラスの中身を見ても、whereメソッドなど存在していません。(存在していれば当然の如く補完が働きます。) ではなぜ前述のコードが動作してるのかというと、Model クラスにおいて__callおよび__callStaticメソッドを定義しているからです。 __call
少しLaravelを利用したPHP開発から離れていたのですが、再度phpStormをインストールして開発を再開しようとした所、色々と以前のバージョンと異なっている事があり、すんなりと行きませんでした。まだ十分に差分を理解していませんが現時点で分かっている対応をまとめました。今後分かった時点で追加して行きたいです。 対象phpStorm 当初の開発はphpStormの2019年のリリース1でした。(2019.1.1)しかし現在の最新版は2020年リリース1です(2020.1.3)。年数回リリースされて更新やバグ修正が行われていますがこの1年弱の間に色々と変更があった様です。この修正の間に色々と変更が発生したのだと思います。継続して更新や修正が行われていますので今後も大きく変更になる可能性があります。 Laravelプロジェクト作成エラー 今まではGit、Composerをインストールした後に
PHPStormで追いにくいEloquentコードリーディング(このメソッドの実体はどこにあるの!?)PhpStormLaravelEloquent これは何 Laravel歴4ヶ月の初心者がEloquent周りのコードを読んで頑張って解釈した記録です。 【Laravel】 第1回 Eloquent ソースコードリーディング - モデルの取得 を参考にしました。詳しく解説していただけてますが、初心者には追うのが辛かった部分もあるので、難しそうなところをすっ飛ばしてタイプヒンティングに頼って最終的に呼ばれるメソッドがどれなのか?というのを見つけようという目的です。 例えばorderBy()とかget()とかModelに直接生えていないけど、呼ぶとなんか使えるけどなんで???という疑問を解決したいです。 バージョンとか Laravel v5.6 です。最近5.7にアップデートするタスクをやった
やりたい事 ターミナルでコマンドを打たずにphpstormのGUIだけでgithubに差分をpushする。 下準備(お好みで) 通常の状態だとlocalでのdiffがGitウィンドウに表示されないので、修正する。 修正前 Gitウィンドウにはローカルのdiffは表示されずに別のモーダル表示になっている。 修正後 参考サイト 手順 上のタブの「phpstorm」→「preferences」を開く 「バージョン管理」→「コミット」を開く 「非モーダルのコミットインターフェースを使用する」のチェックを外す これにてOKです。 Gitを操作してpushする 「ローカルの変更」からコミット画面にいく 変更する差分をGitウィンドウから確認して問題なければ、画像の赤枠を押します。 コミットモーダルでコミット情報を入れる 先程の赤枠を押すとコミットモーダルが現れます。 この画面でコミットするファイルの選
Chromebookでも開発ができる時代です。今回は愛機であるPixelbook goでPHP開発をするため、PHPStormをインストールしてみました。 RubymineやPyCharm, WebStromなども同様の方法でインストール可能です。 検証機種: Pixelbook go corei7 JetBrainsToolBoxでPHPStormをインストールPHPStormのアップデート管理をするのにcrostiniのコマンドを叩くのはしんどい。また、WebStormやRubymineを使いたい!というときのセットアップも楽なのでおすすめ。 パッケージのダウンロード以下からtar.gzをダウンロードしてくる。ChromebookのファイルアプリからLinuxへファイルを置きに行けるので、tar.gzを配置する。 JetBrains Toolbox App $ tar -zxvf je
PhpStorm の使い方を教えたくなりましたが、自分の手垢がベッタリついた PhpStorm の環境は、それが自分が設定したりプラグインをインストールしたからなのか、 PhpStorm のデフォルトなのかがよくわかりません。「いやあぼくの PhpStorm では動くんだけどなあ」を無くしたいです。 PHPer なので PhpStorm の話をしていますが、他の IDE でも同様にできると思います。 正しい(?) JetBrains 系 IDE ユーザーであれば、 JetBrains Toolbox をインストールしているはずです。以下 JB Toolbox の操作です。 仕上がりの状態 新たに PhpStorm Sandbox というのを用意しました。他の二つは元々使っていた PhpStorm です。 手順 PhpStorm をもうひとつインストール Other versions から、
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く