Hiroto's diary

プログラミング関連を書くかも

php-cs-fixerで"."から始まるファイルの中身が修正されない時の対処

PHPファイルのコーディングスタイルを自動で直すphp-cs-fixerで.から始まるファイルが修正出来ない問題の対処方法。


php-cs-fixerで使ってるFinderクラスは元々.から始まるファイルを無視します(例えば.php_csファイルなど)。Finderインスタンス.から始まるファイルを追加しても無視されます。

対処法

.から始まるファイルを無視するかはignoreDotFilesで定義されています。ignoreDotFilesはデフォルトでtrueになってるので、falseに設定すれば修正されます。

.php_csファイルのFinderの設定でignoreDotFiles(false)を叩くだけです。

<?php

$finder = Finder::create()->ignoreDotFiles(false);

これでphp-cs-fixer fixを実行すれば.から始まるファイルも修正されます。

Safariで見ているページのタイトルとURLをfeatherでツイートする。

タイトルにもある通り、Safariで閲覧しているページをfeatherに転送してつぶやく。

featherにはURLスキームがあるので、それを使ってブックマークレットを作る。(ブックマークレットの作り方は調べてください…)

これをコピーしてブックマークのURLに貼ればOK。

javascript:location.href='com.covelline.feather:///post?text='+encodeURIComponent(document.title+' '+document.URL);

PHP CS Fixer 2でファイルの先頭に自動的にコメントを挿入する。

知らない内に、PHP CS Fixerの2系が出ていました。.php_csの中身が結構変わっていて前に書いたファイル先頭にコメントを挿入するのもかなり変わっていたので2系用の記事を作成。

1系のはこっち。

hiroto-k.hatenablog.com


コメントを準備する

頭の方でコメントを入れておく。

<?php

// 先頭に入れるコメント。

$header = <<<'EOS'
This file is part of MyApp.

(c) Hiroto Kitazawa <hiro.yo.yo1610@gmail.com>

For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
EOS;

ConfigクラスのsetRulesにheader_commentを追加。

1.xではHeaderCommentFixer::setHeaderを使ってコメントを設定していましたが、2.xではConfigクラスのsetRulesメソッドで設定します。

これは1.xの時。

HeaderCommentFixer::setHeader($header);

$fixers = [
    // 省略
    "header_comment",
];

return Config::create()->fixers($fixers);

2.xではこうする。

$rules = [
    // 省略
    "header_comment" => ["header" => $header],
];

return Config::create()->setRules($rules);

fixコマンドを実行

通常通り実行する。

./vendor/bin/php-cs-fixer fix

ツイート内容が140文字を超えてるツイートでツイート内容が省略される問題に対応する。

Twitterで140文字以上の内容+画像が出来るようになってから、ツイートを取得するAPIでのレスポンスの中のtextが一部省略されるようになってしまった。

本来の見え方。140文字ぴったりの内容と画像が表示される。 f:id:Hiroto-K:20170313001614p:plain

APIのレスポンス。画像のURLの長さだけ省略されている。 f:id:Hiroto-K:20170313001135p:plain

回避方法

クエリにtweet_mode=extendedをつけてtextフィールドを使わずにfull_textを使う。

実際にやってみると、textfull_textになってdisplay_text_rangeが追加されている。

f:id:Hiroto-K:20170313001720p:plain

140文字を超えていないツイートでもエラー等にはならずfull_textdisplay_text_rangeが追加される。

f:id:Hiroto-K:20170313001956p:plain

dein.vimでgit cloneのdepthオプションを指定する

Vimプラグインマネージャーのdein.vimgit cloneコマンドの--depthオプションを指定する。


dein.vimGitHubからプラグインをcloneしますが、.vimrcで設定をしないとgit clone--depthオプションは指定されません。これだと大きいリポジトリプラグインを使う時にPCの容量が食われるので--depth1に設定しておく。

.vimrcに以下を書く。

" depthを1に設定
let dein#types#git#clone_depth = 1