「PHPのファイルに差分があるかを(astを使って)調べる君」を書いた

つくった

gist.github.com

なんで

ってことで、試し書き程度にやってみたのでした。
(ちゃんと動くのかな・・・?そんなにしっかり確かめてない。なんとなく行けるのかな、って所まで作ったので晒す)
(ちなみに、関数のPHPDocは全部AI Assistantさんがやってくれました)


人に説明や証明する事が面倒くさくてぇ、受け取った側も億劫でぇ・・・みたいなものが世の中にあると、
「説明や証明をしなくて済めばいいのに!あるいは、どっかの誰かが代わりにやってくれれば良いのに!」って思いますよね。
いちいち、そういう”くだらなさ”で仕事の場面やらでストレス溜めたくないなぁ〜って思いつつ、
でも「ガガッと気になったところをぶち潰して行きたい衝動に駆られることはある」のも自分にとっては真なので、
サボるための道具を作って遊んでみるか?というアレです。

モノタロウさんの記事、初めて見た時にメチャクチャ衝撃を受けて。「いいなぁ!あれ、俺も欲しい!!」という感じで。
「コメントとかインデントとか改行とかを変えましたよ!!」みたいな、PHP-CS-Fixerなどでガガーっとやるような変更について、どうでもいいからLGTMくれよーーーって交渉や説得・説明が面倒くさすぎます。

で、「何かASTとかそういうの触れてみたい、遊んでみたい!」とも思っていたので再発明でございます。

どんな感じの

といっても、ツイートで触れている記事で紹介されている actionsを見ながら、写経したようなもんです。 github.com

変えたところとしては

とかとかやりました。
比較したいブランチ名やコミットハッシュを2つ渡してあげる〜みたいな使い方をします。
2つ目は、省略したらHEAD を利用します。

 $ php prototype.php main tmp
# Check diff between main...tmp
| main | tmp |
| ---- | ---- |
| 48261f6f838b529b003fa3a26eb770ea2b7bf06c wip | 6c0c3b15f07051277993e24b7ce876e0a5baa3c4 Create README |
## Diff
### non-PHP Files
| filename | status |
| ---- | ---- |
| README | A |
### PHP Files
| filename | status | BASE | HEAD | ast-changed |
| ---- | ---- | ---- | ---- | ---- |
| hello.php | M | b9b45a8d7d4608bce4541443e0db1ec7 | b9b45a8d7d4608bce4541443e0db1ec7 | NO CHANGE |
| prototype.php | M | 39bfc6a9f6632f1723bc13d5b234c396 | 3278e5a8d39c10c4cb30b3232af507d7 |  |
| src/Command/EchoHashCommand.php | D | f5612c756ba27d3be6a479387ee97dcd |  |  |
| src/Parser/Parser.php | D | db232594d101bc1a7e4f40e67e6dc54c |  |  |
| src/Parser/Validation.php | D | 69850a9556020ed7d4234cc13f1d1c57 |  |  |

(気が向いたら)

  • symfony/consoleとかを使って、なんかそれっぽい感じに書き直したら楽しそう
    • pharで固めるか、Dockerで動くようにするかかなぁ。使いたい環境でサクッと使えるようにしたい
  • GItHub上で使えるようにして、レビュアー大歓喜!号泣!!みたいなものにしたら面白そう
    • PRのコメントに「えいっ!!」って書き込んだら結果を貼り付けてくれる〜、みたいなの出来たら使えそう?

やったこと・書いたもの{2023,06}

OSS

勉強会・LT

PHPカンファレンス福岡2023に参加しました & 登壇しました #phpconfuk / @自分の登壇まわり - 大好き!にちようび

その他

会社でテックブログを(仮)始動させたので、Zennにいくつか記事を出しました。

会社のアカウントからも出しています

PHPカンファレンス福岡2023に参加しました & 登壇しました #phpconfuk / @参加の感想

他の参加者のエントリーを見ていると、どうやらアイキャッチ画像をラーメンにしておくのが流行っているみたいなので、当方もしてみむとてするなり。

6月24日に開催された、HPカンファレンス福岡2023に参加しました

phpcon.fukuoka.jp

ここ最近は、カンファレンスに参加する度(たび)に段々と楽しんだ度(ど)が増してるな〜〜という気持ちがあるのですが、 今回もまた、それはもう楽しかったです。

自分の発表内容については別途で記事を書きまして、イベントやコミュニティに参加して楽しかったな〜という話をしたいと思いますので、ここでは自分の発表内容についての諸々を残しておきたいと思います。

(ほぼ、ただの日記です)

続きを読む

PHPカンファレンス福岡2023に参加しました & 登壇しました #phpconfuk / @自分の登壇まわり

6月24日に開催された、PHPカンファレンス福岡2023に参加しました

phpcon.fukuoka.jp

ここ最近は、カンファレンスに参加する度(たび)に段々と楽しんだ度(ど)が増してるな〜〜という気持ちがあるのですが、 今回もまた、それはもう楽しかったです。

参加した感想やセッションを聴いての感想などは、別途で記事を書きたいと思いますので、ここでは自分の発表内容についての諸々を残しておきたいと思います。

発表したもの

fortee.jp

続きを読む

#phperkaigi 2023でのトークに向けて参考にした資料・発表まとめ

PHPerKaigi 2023で、チャンスをいただいたので発表をしてくるでございます。

fortee.jp

今回のトークテーマは、「10年ちょいの間でPHP界隈どんな事があったっけ・どんな感じになったっけ」について考えるような内容になりました。
そのため、過去にカンファレンス等で発信された色々なアウトプットから、大変勉強させていただいています。
そうした中で、今日に向けての進化を紐解くためには、その時々のスナップショットで「最近のアツいトピック」を積み重ねて行くことが強力なヒントになる!!と改めて感じたのです。

どうにかして、発表中にそれら全てへの言及をしたい・・という気持ちもあるのですが、そこまで上手く織り交ぜて話せるかが微妙なので、先にこちらにまとめておこうと思いました。

言ってしまえば、自分の発表とかとは関係なく、「仕事や趣味で最近のPHPに触れている人」にとっては必見・必読な内容なのでは??というのが個人的な感想です。
めちゃくちゃ面白い発表が多いし、何度も何度も観たやつが多いですね。先人に敬意と感謝を!!!!!

ってな訳で、PHP系のコミュニティ(国内)で発表されている内容で、参考にさせてもらったものを整理して羅列したいと思います。
自分の活動範囲が主にPHP Conference Japan/PHPerKaigiなので、目に入っているものはその辺りが多いかもです。

  • 歴史ふりかえり
  • PSR-7とその周辺
    • 2015
    • 2016
    • 2018
    • 2019
    • 2022
    • etc
  • その他PSR
    • 2013
    • 2017
    • 2021
  • FW周り(考察とか、自作とか)
    • 2016
    • 2018
    • 2019
    • 2020
  • 設計とかFWとの距離とか
    • 2017
    • 2018
    • 2019
    • 2020
    • 2021
  • まとめ
続きを読む