
PHPStan型付けマニュアル
CRANK
こんにちは! 楽しくPHPStanを使っていますか? それともPHPStanに使われていますか?PHPStanは非常に賢く、容易にPHPコードの 「嫌な気配」 を検知してくれます。ただ、PHPStanが指摘することが常に正しいなどといったことはなく、いつでもプログラムが動作しているという事実が前提で、静的解析はその影を追っているに過ぎません。PHPStanがどのようなメカニズムで型を付けているのか理解できていないと、自我を失って機械に言われるがままに意図しないコードを書かされる人形になってしまいます。本稿ではPHPStanを自律的に使うために前提となる知識を紹介します。ここからプログラミング言語と型、そしてPHPについての議論を始めたいのですが、「PHP」という名前はプログラミング言語の名前であり、PHP言語で書かれたソースコードを実行するプログラム名でもあります。ややこしいのですが、単にPHPと書くと言語名、phpと書くとPHPを実行するソフトウェアを指すことにしましょう。また、言語処理系とはプログラミング言語で書かれたソースコードを解析して実行したり、実行可能なプログラムファイルに変換するソフトウェアの総称です。phpのようにソースコードを直接起動…
7 comments
絶対に動的型付けって言いたくない気持ちで書いてる zenn.dev/pixiv/articles…
よろしくね zenn.dev/pixiv/articles…
npmにあるライブラリすべてにTypeScriptでまともな型がついてるのか? definitely-typedの型は本当にまともなのか? みたいな見方をしたときにPHPとnpmに大きなレベル差はなさそう(そもそもPHPにdefinitely-typedみたいな過渡期的な野蛮な仕組みは必要とされていないので存在しない) x.com/mizchi/status/…
型の表現力ではTypeScriptの方が強いけどPHPStanはPHPでコード書いて構文木と変数スコープから型推論できるのでトータルではPHPStanの方が強いですよ、という主張はできます。 zenn.dev/pixiv/articles…
こういうの zenn.dev/pixiv/articles… pic.x.com/Erl7tn1HhMhttps://x.com/tadsan/status/1912335918243221851/photo/1)
zenn.dev/pixiv/articles…
PHPerKaigiのパンフレットに載せた型についての怪文書を一般公開しました zenn.dev/pixiv/articles…