PHPのarray()を[]に置換する方法
PHP5.4以降では、 array()を [](short array syntax)短縮構文で書くことができるようになりました。コードの中に存在している array()を []に置換する方法をメモしておきます。
PHP5.4に移行していく中で起こりうる array()と []が混在してて気持ち悪い!という状況等を解消するのに一役買ってくれることでしょう。
ちなみに []記号は、角括弧やブラケット (bracket)等と呼ばれます。
環境
以下の環境で確認をしました。
当然ながら、PHP5.4以降がインストールされている必要があります。
ソフトウェア | バージョン |
---|---|
PHP | 5.4.23 |
PHPのarray()を[]に置換する方法
GitHubにコンバータが公開されています。 convert.phpを取得し、任意の場所に設置してください。
PHP 5.4 Short Array Syntax Converter – GitHub
コマンドの書式は以下の通りです。
1 2 3 4 5 | # ファイル単位での実行 php convert.php [-w] <file> # ディレクトリ単位での実行 find <directory> -name "*.php" -exec php "convert.php" -w "{}" \; |
以下のようなディレクトリ構成になっていると仮定し、実例を示します。
1 2 3 4 5 6 7 | /convert.php /app /Controller /BarController.php /BazController.php /FooController.php ... |
置換する方法は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 | # 実行結果を保存せずにSTDOUTに出力 php convert.php app/Controller/FooController.php # 実行結果を対象ファイルに上書き保存 php convert.php -w app/Controller/FooController.php # Controller以下の全てのPHPファイルを対象に実行し、上書き保存 find app/Controller/ -name "*.php" -exec php "convert.php" -w "{}" \; # スクリプトを信用できない人向けに変換後の構文チェックもできる find app/Controller/ -name "*.php" -exec php -l "{}" \; | grep "error:" |
.php以外のファイルも対象にすることも可能です。例えば、CakePHPのViewの .ctpファイルも期待通りに処理してくれます。
以上です。
IDEでarray()を[]に置換する方法
12月25日14時追記
NetBeansでarray()を[]に置換する
NetBeansなら、プラグインで簡単に短縮構文に置換できるよってフィードバックがありました。プラグインの作者のブログ(日本語)に導入方法等がまとめられていますので、参考にしてみてください。
NetBeans PHP Enhancements Plugin : Convert to short array syntax
PhpStormでarray()を[]に置換する
PhpStormでも、標準機能として備わっていました。(普段、使っているのに、まだまだ知らない機能が一杯だなー)
以下に、方法を示します。
PhpStorm > Preferences > Intentionsを開き、 Convert to short syntaxにチェックが入っていることを確認
array()が使われている行にキャレットを移動
左部に表示される電球をクリックし、Convert to short syntaxを実行
変換できたことを確認
ファイル全体であったり、ディレクトリを対象に置換する方法は見つけることができませんでした。
Special Thanks
@thomasbachem – GitHub
PHP 5.4 Short Array Syntax Converter – GitHub
コード中のarrya()をshort syntaxに一発で置換するツールとかないかなー。
#PHP
— まわたりなおと (@mawatarin) 2013, 12月 25
@mawatarin GitHubにありました。このまえ使った記憶があります。
— Hisateru Tanaka (@tanakahisateru) 2013, 12月 25
@tanakahisateru おお!探してみます。
— まわたりなおと (@mawatarin) 2013, 12月 25
@tanakahisateru それっぽいのが見つかりました。ちょっと触ってみます。
PHP 5.4 Short Array Syntax Converter
https://t.co/HQHZnxb8r3
— まわたりなおと (@mawatarin) 2013, 12月 25
@tanakahisateru ばっちりいけました。ありがとうございます!
— まわたりなおと (@mawatarin) 2013, 12月 25
@mawatarin よかったです。日本語では案外知られてないのかもですね。
— Hisateru Tanaka (@tanakahisateru) 2013, 12月 25
@tanakahisateru @mawatarin 知らなんだ。
— Masashi Shinbara (@shin1x1) 2013, 12月 25
@shin1x1 @mawatarin 残念ながらアドベントには間に合わず
— Hisateru Tanaka (@tanakahisateru) 2013, 12月 25
@tanakahisateru @mawatarin これ blog に書けば、助かる人いると思う。
— Masashi Shinbara (@shin1x1) 2013, 12月 25
@tanakahisateru @shin1x1 日本語情報としてブログにメモっときます。
— まわたりなおと (@mawatarin) 2013, 12月 25
@mawatarin @tanakahisateru やった!おねがいしますー。
— Masashi Shinbara (@shin1x1) 2013, 12月 25
@mawatarin @shin1x1 URL忘れないようにはてブしときます
— Hisateru Tanaka (@tanakahisateru) 2013, 12月 25
NetBeansなら、プラグインで解決できる!
.@mawatarin 乗り遅れましたが、short array syntaxへの変換、NetBeansならプラグイン入れてクリック2つでできます。 | http://t.co/GB8AAMk63f
— nojimage (@nojimage) 2013, 12月 25
@nojimage なるほど。IDEに任せちゃうって手もありますね。ブログにリンクを追記しておきます。
— まわたりなおと (@mawatarin) 2013, 12月 25
PhpStormでも!
short array syntax convertは、NetBeansなら、プラグインで解決できるよ!って声を頂いたので、PhpStormの状況を調べてみたら、標準でできた…。
普段、使ってるのに、まだまだ知らない機能が一杯だなー。
— まわたりなおと (@mawatarin) 2013, 12月 25