超PHPerになろう

Enjoy PHP Programming

PHPStan 1.12: PHPStan 2.0への道

この記事はPHPStan開発者のOndřej Mirtesによって2024年8月27日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org 最初のPHPStan 1.0リリースから3年が経ち、PHPStan 2.0が近づいてきました。新しいメジャーバージョンのアイデアのリストを精査…

エラー識別子を備えたPHPStan 1.11、PHPStan Proの再始動など

この記事はPHPStan開発者のOndřej Mirtesによって2024年5月13日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org エラー識別子を備えたPHPStan 1.11、PHPStan Proの再始動など このリリースは一年にわたって取り組んできました。それは一年何…

PHPカンファレンス福岡2023を完走した感想

6月の福岡といえばPHPカンファレンス福岡ですね! phpcon.fukuoka.jp 前回の開催予定だった2020がコロナ禍で中止になってしまったため、2019以来の4年ぶりの開催ということになりました。 私は6月22日の早朝に出発して25日まで福岡市内に滞在しておりました…

PHPerKaigi 2023に参加しました

2023年も終わった… もう一週間も前のことになりますが、今年はこんな感じのことをしていました: コアスタッフ バックボード発注 (おっきい市松模様の背景みたいなやつ) バナー発注 (縦長の布っぽい看板みたいなやつ) Track A 部屋係 (DAY 0, DAY 1) ゴミ収…

PHPStan 1.10には嘘発見器が付属しています

この記事はPHPStan開発者のOndřej Mirtesによって2023年2月21日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org 私(Ondřej)はPHPStan 1.10のアイディアを実装してリリースすることを長い間たのしみにしていました。 インラインPHPDoc @var タ…

PHPDocベースのassert、list型とPHPStan 1.9.0の新機能

この記事はPHPStan開発者のOndřej Mirtesによって2022年11月3日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org PHPStan 1.9.0はまさにコミュニティの尽力によるものです。目玉機能はすべて、メンテナーである私(Ondřej)以外の誰かの貢献です…

条件付き戻り値型とPHPStan 1.6.0の新機能

この記事はPHPStan開発者のOndřej Mirtesによって2022年4月26日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org 条件付き戻り値型 (Conditional return types) この機能の大部分はRichard van Velzenが開発しました。 PHPStanは初リリース以…

PHPerKaigi 2021に参加して、それから

去年に引き続きPHPerKaigiにコアスタッフ・発表者として参加してました。 phperkaigi.jp そういえば一年前にこんな記事も書いたりもしてました。 www.phper.ninja 去年の暮れから今年にかけて体調を崩しておりタイミング的にぎりぎりだった気もします。(在宅…

戻り値の記憶と忘却

この記事はPHPStan開発者のOndřej Mirtesによって2021年4月3日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org PHPは記憶されるべき関数呼び出しの戻り値について、これまで一貫性がありませんでした。 getName()) { \PHPStan\dumpType($pers…

PHPDocを使ったPHPのジェネリクス

この記事はPHPStan開発者のOndřej Mirtesによって2019年12月2日に書かれた記事を翻訳したものです。記事の末尾には訳者(@tadsan)の観点によるPhan, Psalm, PhpStormとの互換性についての情報も記述しています。 medium.com 2年前、私(Ondřej Mirtes)はユニオ…

あなたが今年PHPerKaigi 2020に参加しなければいけない理由

PHPerKaigi(ペチパーカイギ)をご存じでしょうか? phperkaigi.jp ここ数年、日本中でPHPをテーマにした技術イベントが開催されています。そのうち東京で開催されているPHPの総合カンファレンスには「PHPカンファレンス」と「PHPerKaigi」の二つがあります。 …

PSR-7と生PHPに対応したSet-Cookieライブラリを作った

PSR

Cookies default to SameSite=Lax - Chrome Platform Statusということで、何もなければ2020年2月4日にはリリースされる見込みのChrome 80(参考: Chrome Platform Status)を皮切りにCookieにデフォルトがSameSite=Lax相当になるということで、駆け込みでSame…

PHPStan 0.12.0がリリースされました

この記事はPHPStan開発者のOndřej Mirtesによって2019年12月4日に書かれた記事を翻訳したものです。 medium.com これは6ヶ月にわたって開発された大規模なリリースです。この新しいメジャーバージョンの開発中も私たちは多くのマイナーバージョンをリリース…

Laravel.shibuya #4に参加して超PHPerになるための手掛かりを得た #laravelshibuya

Laravel.shibuyaは渋谷の5人のイカしたLaravelギャングどもが今年の5月から定期開催するミートアップです。 laravel-shibuya.connpass.com よくあるセッション中心の技術勉強会とは異なり、Laravel.shibuyaはIRT(Interactive Round Table)、つまり座談会によ…

沖縄で変なコードを満喫してきた #omosiro_code

沖縄在住の新進気鋭の超絶技巧プログラマであるりゅうくん主催の会に参加してきました。 connpass.com ずっとRubyで変なことをやってるhanachinさん、TRICK 2018で5作品入選で鮮烈な存在感を発揮したぺん!(tompng)さん、元同僚でギークハウス沖縄オーナーの…

Laravel JP Conferenceに参加 + LTした #laraveljpcon

Laravel JP Conferenceに参加してきました。あと懇親会で飛び入りのLT発表もしました。 https://conference2019.laravel.jp/conference2019.laravel.jp 経緯 もともとは本セッションに応募したのですが落選したのでした。当日スタッフ募集の時期に体調を崩し…

PSRについて話したPHPカンファレンス仙台2019 #phpconsen

PSR

PHPカンファレンス仙台2019の参加者としての感想はMediumに書きました。 medium.com さて、ここではPHPコードの実装者としての感想を書きます。 github.com 2019年1月31日10時20分 追記 真にPSRとHTTPの関係について学びたい型は、PHPカンファレンス2018の田…

PHPerKaigi 2018前夜祭でテスティングフレームワーク設計の話をします

PHPerKaigi 2018は今回初開催される新しいカンファレンスです。今回の発表の正式タイトルは「PHPでテスティングフレームワークを実装する前に知っておきたい勘所」ですが、これはCFP応募前にあったいくつかの案を統合したものです。

PHP開発のためのEmacs 2017

ピクシブ開発基盤チームのうさみ(@tadsan)です。この記事はピクシブ株式会社 Advent Calendar 2017の16日めの記事です。Emacsを使ってPHP開発を効率化するための手段を紹介します。

ODCとLLイベントでPHPの話をしてきた×3

2017年8月19日と8月20日の両日にOpen Developers Conference 2017 TokyoとLLイベント2017ことLearn Languages 2017 in ODCに参加してきました。 https://www.ospn.jp/odc2017/modules/eventrsv/?id=1&noform=1www.ospn.jp PROGRAM – LLイベント2017 プログラ…

オブジェクトをいい感じに複製(クローン)する [myclabs/deep-copy]

「オブジェクトの複製」には本質的に厄介な問題をいくつも含みます。特に、オブジェクトの再帰的な複製(ディープコピー)には直感的ではない動作や単純ではない依存関係が発生しがちです。myclabs/deep-copyはそれをいい感じに解決してくれます。 公式サイト …

すごいPHPerになるためにいろいろやってた

すごいPHPer(ぺちぱー)になりたいと思っていろいろやってたんですが、ちょっと慌しいのが重なって報告わすれてました ヾ(〃><)ノ゙☆ PHP BLT #3でしゃべってきた PHP BLT #2は参加できなかったけど、#3には参加してました ヾ(〃><)ノ゙ なんとかStormに負け…

すごいPHPerになるためにオートローディングについて調べて記事書いた

今月発売のWEB+DB Press vol. 91にPHPのオートローディングについて書きました。みんなでオートローディングしまくろう。 https://t.co/4Hr43lyzjg pic.twitter.com/Iug3xcYPGw— public static functi (@tadsan) 2016, 2月 8 Composerとかでインストールした…

PHP BLT #1で「たのしい独自フレームワーク」を発表しました

PHP BLT #1はPHP界隈のTipsについて5分で話すLT大会です。 phpblt.connpass.com コンセプトとしてはもっと気軽な内容を意図されてたはずなのですが、このスライドでは20分枠で話すような内容を説明不足に任せて駆け足でLTにした感じです! たのしい独自フレ…

User-Agent文字列を解釈するには [woothee/woothee]

User-Agent/UA文字列はブラウザなどのユーザーエージェントが自己申告する識別子のことです。この値は歴史的経緯から複雑怪奇で、付け焼刃の実装では正確な判定が困難です。 Project Wootheeはプログラミング言語に依存しないUA文字列パーサーを開発するプロ…

php.netのひみつ(1) 短縮URL

php.netはPHPの公式サイトです。ダウンロードやリリースノートがあるのは当然なのですが、その中でもPHP: Documentationには技術文書が網羅されてます。 RubyやPythonのドキュメントが各バージョンごとや英語とその他の言語(日本語を含む)の断片化が著しいの…

PHPとMIT Licenseについて

Webにはフリーソフトウェアとして公開された多くのPHPライブラリがあります。しかし、多くのスクリプトには「ライセンス」と呼ばれる利用条件が設定されて居り、利用者はこれを遵守する必要があります。 今回は多くのPHPライブラリのライセンスとして採用さ…

さまざまな環境で統一的にファイルを操作する [league/flysystem]

Flysystemは複数のファイルシステムを透過的に操作できるライブラリです。 ローカルのファイルシステム(UNIX系/Windows)はもとより、zip形式のファイル書庫やFTPやWebDAVを経由したリモートディスク、Amazon S3やDropBoxのようなクラウドサービスなど、さま…

PHPを「シェル化」する [psy/psysh]

PHPのコードを書いて動かして試行錯誤… するのに、わざわざエディタでコードを書き、保存してphpコマンドを起動する… のは非効率です。そんなときはPsySHを使ってみませう。 PsySHはインタラクティブシェルと呼ばれるジャンルのアプリケーションです。対話環…

外部プログラムを起動するには [symfony/process]

PHPスクリプトから他のプログラムを起動して、その出力結果を得たいことがあります。PHPではexecやproc_openがあります。しかし、標準出力(stdout)と標準エラー出力(stderr)をうまく制御して出力を取得するのは、実はなかなか面倒だし、マニュアルを読みなが…