小ネタ。
cakephpのPRをほげ〜〜〜っと眺めていたら
https://t.co/q3NzNDEwPs
— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) 2020年9月30日
.gitattributesの `*.php diff=php` 知らなかった!すごそう
ということで、やってみるか!!となった次第です
cf:
- https://php.watch/articles/composer-gitattributes#diff-php
- https://github.com/cakephp/cakephp/pull/15000
試してみる内容
before
<?php declare(strict_types=1); namespace App; class Hoge { public function __construct() { // @todo } public function __destruct() { // @todo } public function make() { // このメソッドで // 何かしらして // 良い感じに // 頑張ろうと // 思っています $args = func_get_args(); file_put_contents($this->getOutputPath(), $args); } private function getOutputPath() { return __DIR__ . DIRECTORY_SEPARATOR . 'hoge_output'; } }
diff
25c25 < $args = func_get_args(); --- > $args = json_encode(func_get_args());
という感じで、Hoge::main()の6行目を修正してみます
試してみる
gitatributes設定無し
こんな感じで、class
は分かりますが後は行数ベースで頑張る感じです
gitattributes設定あり
コンテキストの粒度が「メソッド main()
の中である」という事を明示するようになりました!
詳細な情報がパッと見れるようになって嬉しいですね〜〜
(・・・何で拡張子.phpのファイルに対して「phpと見なして差分を扱ってください」って設定が必要なんだろ?)
これでfinalやtraitといったキーワードにも対応できるらしいです。
やっぱりgitとphpはソース読めるようになりたいな、と改めて思いました。。。