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"を指定することで将
Laravel 職人の皆さん、PHP Doc 書いてますか? 「静的解析バリバリやってるぜ!」 という方は是非ブラウザバック願います。 この記事は、Laravel での開発をちょっと快適にする、PHP Doc の書き方をご紹介します。 先日開催されたPHPカンファレンス2021 の、 とあるセッションに触発されて走り書きした雑な記事ですが、 少しでも誰かのお役に立てば。 実験環境は以下のとおりです。 VisualStudio Code 1.60.2 PHP Intelephense 1.7.1 Laravel のバージョンは、たぶん関係ありません。 とりあえずコード書こうぜ の前に事前準備 サンプルとして、こんなテーブルがあるとします。 宗教上の理由でテーブル名に m_ とかついてたり、 プライマリーキーが xxx_id とかなってますが、悪しからず。 これに対応するモデルは、だいたいこん
LaravelPhpStorm's support for the Laravel web application framework includes: Laravel code completion and navigation Code generation, eloquent completion, routing completion, request fields completion, validation rules completion, and other useful helpers. Blade templates supportCode completion and navigation for Blade templates. Language injection in Blade templates. Debug and configure Blade tem
先の M-1グランプリ決勝ではスーパーマラドーナを応援していた kagata です。「人に話すとツキが落ちる」という非科学的な理由からあまり他言しないようにしていたのですが、その努力もむなしくファーストラウンド敗退に終わりました。結果は残念でしたが、関東の地上波ゴールデンタイムで「ひき肉にしてやんよ」が聴けたのでそれで満足することにします。 さて、今回は PhpStorm についての Tips です。PHP のソースコードにアノテーションを追加することで、PhpStorm の強力な静的解析機能をさらに有効活用できる例をご紹介します。これにより、バグの作りこみをへらしたり、自動補完でコーディングの効率をアップさせたりすることができます。ぜひ活用してみてください。 それにしても、「○○を◎◎する N 個の☆☆」なんてありがちな記事タイトルをたまにつけると、なんだかすごく恥ずかしいですね。 Ph
PhpStormのメモリを可視化するには 「Preference」→「Appearance & Behavior」→「Appearance」→「Show memory indicator」にチェックをいれ「OK」を押す。するとエディタの右下にメモリのインジケーターが表示される。インジケーターにはメモリ使用量とメモリ最大値が表示される。 手動GCするには メモリインジケーターをクリックするとGCを走らせることができる。「なんだかもっさりしてきな」と感じたときは押して見ると、もっさり感が解消されることがある。 メモリ最大値を増やすには 「Help」→「Edit Custom VM Options・・・」を開き-Xmxの値を増やす。 メモリ最大値を2GBにする例:
PHP には、PSR が策定されたおかげで、これをベースにコーディングスタイルがある程度整ってきました。 ここ近年開発がはじまったプロジェクトなら、PSR-1/2 をコーディングスタイルとして採用しているプロジェクトも多いのではないでしょうか。 せっかく採用したなら、実際に書くコードはできるだけこの基準に沿うようにしたいものです。ただ、ここにあまり手間をかけるのも本末転倒です。そこで、手間をかけずに、コーディングスタイルに従えるような方法を模索してみました。 開発環境には、PhpStorm を使う前提です。 PhpStorm の PSR1/PSR2 ルール まず、PhpStorm の Code Style で、PSR1/PSR2 をルールとして設定しました。 プロジェクト毎に規定したいので、Scheme はProjectにして、set from...をクリックして、Predefined S
この記事はPHPStan開発者のOndřej Mirtesによって2019年12月2日に書かれた記事を翻訳したものです。記事の末尾には訳者(@tadsan)の観点によるPhan, Psalm, PhpStormとの互換性についての情報も記述しています。 medium.com 2年前、私(Ondřej Mirtes)はユニオン型と交差型についての衝撃的な記事を書きました。PHPコミュニティがこれらの概念に馴染むのを手助けし、PhpStormでの交差型サポートにつながりました。 ユニオン型と交差型の違いは開発者が認識すべき静的解析に役立つ重要な概念なので、私はその記事を書きました。今回は同様に、PHPStan 0.12で導入されたジェネリクスについて、それが何であるかを説明したいと思います。 無限のシグネチャ 関数宣言するとき、我々は関数に付属する単一のシグネチャを書いていました。ほかの選択肢
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
ほぼ自分用メモ Laravel は Facade 使いまくりで初期状態ではIDEでコード補完できない。 どうやるの IDE でコード補完用のファイルを生成してくれる神ライブラリがあるのでこれを使う。 barryvdh/laravel-ide-helper 上記のライブラリでできることは下記3つ Facade を使ったコード補完ファイルの生成 データベースから生成したEloquent\Modelクラスに対してプロパティアクセスの為のコード補完ファイルの生成 コンテナから取得したオブジェクトに対してコード補完ファイルの生成(PhpStorm限定) 生成方法は下記の2つ ServiceProvider に登録し、アプリケーションの実行毎に最新のコード補完ファイルを生成する コマンドラインから手動で生成する ServiceProvider に登録する方法は常に最新のものが生成されるメリットはありそ
JavaScriptのプログラミングはこれだけ効率化できる! 使用歴5年目のエンジニアが送るWebStormの厳選神業集 JavaScript(ES2015+)、TypeScriptの需要は高まる一方ですが、プログラミングの効率化をどれくらい意識していますか? プログラミングが効率化されれば、作業時間の短縮、ケアレスミスの軽減、プロダクトの品質の向上、そしてストレスの軽減に繋がります。 筆者が5年間使用している「WebStorm(ウェブストーム)」は、JavaScriptのプログラミングをする上での面倒な処理をほとんど自動化するための機能が揃っていて、ロジックの検討や表現の作り込みに時間を割けるようになります。 本記事では、多くの機能の中からとくに便利だと感じるものをピックアップして紹介します。WebStormを使ったことがない方も、「この作業はツールで自動化できるのか」という知識を得て、
「IntelliJ IDEA ハンズオン」、献本いただきました。著者であり、JetBrains 代理店サムライズムの代表でもある山本祐介さん、ありがとうございます。 http://amzn.asia/0ELFU8Qamzn.asia JetBrains の IDE 製品は大好物で、普段からとてもお世話になっています。ということで、さっそく読ませてもらいました。 読み始めて真っ先に思ったのは、これ PHPer でも買って全然損ないな、です。 現在の PHP は、文法的にも、技術文化的にも、非常に Java に似た言語となりました。なので、Java を中心に解説されている本だとはいえ、その解説の半分以上は PHP と PhpStorm でも活かせる内容だと感じました。 本書は二部構成になっていて、第一部はこんな感じ... HTMLとCSSとJavaScriptの記述を通じて操作感を練習 思いつ
PhpStorm から Docker for Mac の Docker コンテナ内で PhpUnit のテスト実行や Remote Debug を行うための設定です。 下記バージョンにて構築を行いました。 PhpStorm 2017.2.4 Docker for Mac 17.09.0-ce-mac35 PHP 7.1( php:7.1-apache ベース ) Xdebug 2.5 サンプルプロジェクトの取得 サンプルプロジェクトを用意したので、このプロジェクトをベースに設定を行います。このプロジェクトには、初期状態の Laravel アプリケーション(5.5)が含まれています。 github.com git で clone して、make を実行すると composer install と docker-compose up が実行されます。ブラウザで、 http://localhos
祝 PhpStorm 2016.3 リリース 2016/11/24、な感じのネタです。 PhpStorm 2016.3 is now released! | PhpStorm Blog 先日、株式会社ロックオン 様の社内勉強会に招待されて、PhpStorm のワザをいろいろ共有してきました。EC-CUBE3のソースを開いてインスペクションかけては「あ、ここ型検査効いてませんね...」「依存はmixed型で取ってくるんじゃなくて型を持ったフィールドに注入しないと...」とかひどいことやりました申し訳。 そのとき簡単な PHP のプログラムを通しで作るデモを雑に作っていったんですが、これ実はいい出来なんじゃないかということで、ちゃんと仕上げて公開したいなと思い... というわけで、約40分の PhpStorm 初心者向け (PHP 初心者とは言っていない) ライブコーディングですどうぞ。 Ph
2015年は「Laravelエンジニア養成読本」「Laravelリファレンス」、そしてまだ未発表ですが、もう一冊の技術本の執筆に参加しました。 時代によって技術本の執筆環境も変化してきています。今年、技術本の執筆に利用したツール、サービスを紹介します。 過去の技術本執筆環境は、以下のエントリにあります。 いまどきの技術本執筆環境 – 「CakePHP2実践入門」 このエントリは、Laravelリファレンス Advent Calendar 2015 の21日目です。 ツール、サービス 執筆に利用したツール、サービスは以下です。下記では、今年導入したツールについて書いてみます。 執筆: Vim + PhpStorm / Marked 2 原稿管理: GitHub(private repository) 連絡: GitHub Issue / ChatWork CI: レビューファイル自動生成 校
PHP FrameworkにCodeIgniter3を採用したプロジェクトをPhpStorm(ver.9.0.2)で編集している。PhpStormのメソッド・プロパティ補完機能(autocomplete機能)はとても便利で、コード記述を強力にサポートしてくれる。また、定義にジャンプする機能もコードの実装を追うのにとても有益だ。 参考: Code Completion - Help | PhpStorm しかしCodeIgniterの機能を使ったソースコードは思うように補完機能が働かない。 CodeIgniterではModelやContorollerでクラスを利用する時にローダーを利用するが、$this->loadするとインスタンスは$this->xxxにセットされ、$this->xxx->funcのように利用する。 このとき「$this->xxx」が何者なのかPhpStormは分からないの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く