2014年2月PHPフレームワークのトレンド

f:id:y_d:20140214020723p:plain

人気のあるPHPフレームワークについて調べていたら下記の参考になる記事がありました。

Githubのスター数」と「Googleトレンド」という観点が面白かったので、2014年2月14日現在で調べ直してみました。

Githubのスター数

PHPフレームワークを適当にピックアップし、GithubのStar順に並べて表にしました。
2013年4月21日時点では3,971だったLaravelのスター数が[*1]、2014年2月14日現在では8,319となり、第1位になったようです。

フレームワーク Star Watch Fork 最新リリース 備考
Laravel 8,319 1,115 2,728 v4.1.18
Symfony 7,820 750 2,930 v2.4.2
CodeIgniter 7,189 1,020 3,499 2.1.4
CakePHP 4,515 474 1,838 2.4.5
Zend Framework2 4,551 540 2,598 release-2.2.5
Yii 3,492 491 1,516 1.1.14
Slim 3,262 275 566 2.4.0
Phalcon 2,719 324 355 v1.2.6
Silex 2,016 197 432 v1.1.2
Kohana 1,353 156 326 v3.3.1.1
FuelPHP 1,302 123 251 v1.7.1 タグが切られていないけど最新はv1.7.1
Lithium 868 92 222 1.0-beta
Flight 520 79 73 v1.1
PHPixie 169 30 41 ?
Bullet 157 16 13 v1.3.2
Aura 116 23 27 2.0.0-beta1 一番人気のAura.Sqlリポジトリで集計
Ethna 74 12 38 2.6.0beta3
pinoco 36 8 7 0.8.1

Googleトレンド

日本国内

上記で調べたフレームワークを調べてみたところ、日本ではこの人気順になっているようです。
個人的にはですが、なんとなくネットで見かける順になっているように思います。

人気度 フレームワーク
1位 CakePHP
2位 FuelPHP
3位 CodeIgniter
4位 Symfony
5位 Zend Framework

すべての国

「すべての国」を対象にするとCodeIgniterが1番なりました。
日本で人気のFuelPHPGoogleトレンドによるとあまり人気がないようです。

人気度 フレームワーク
1位 CodeIgniter
2位 CakePHP
3位 Symfony
4位 Zend Framework
5位 Laravel


以上です。
CodeIgniter、CakePHPは日本でも世界でも人気があり、世界的にはLaravelに人気が集まりつつあるようですね。


2014/02/14 追記: Flight,PHPixieを追加しました

爆発コマンド

f:id:y_d:20140212022307g:plain

爆発しろ!という気持ちを鎮める為のシェルを書きました。
このシェルを叩くとランダムで生成された爆発のアニメーションが描画されます。
※パーティクルが密集しているところは「@」など大きめの文字で描画するなど、ちょっと凝ってます

シェルスクリプトに関する知識がなかった事もありググりながら書いたソースなので汚いですが、ソースはこちらにて公開してありますのでダウンロードして使ってみてください。
https://gist.github.com/demouth/8939731
設定値は一カ所にまとめてありますので爆発具合の調整もできます。
MacOSMacOSのターミナル.appでしか動作確認していないので他では動かないかもしれません。

個人的メモ

  • 最初キャリッジリターン(\r)を使おうかと思ったけど、文字数が増え複数行にまたがった場合上に戻れないようなのでtputを使う事にした。
  • exprを使って実装したら遅かったので$(())に書き換えたら早くなった(計測はしてない)。
  • 小数点の計算が面倒だったのでやめた。
  • エスケープシーケンスは[Ctrl]+[v]→[ESC]で入力するらしい。

iOS7なiPadのユーザーエージェントについて調べてみた

f:id:y_d:20140209221129p:plain

ある日、Chromeデベロッパーツールで Device「Apple iPad 3 / 4」にするとユーザーエージェントが「iPhone」となっている事に気がつきました。

Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

んー、本当かなー。

ググってみる

という事で、iPadのユーザーエージェントについてググっていると次の情報が出てきました。

Mozilla/5.0 (iPad; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

http://tetsuwo.tumblr.com/post/62159303953/ios-7-safari-iphone-ipad-ipod-touch

Mozilla/5.0 (iPad; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53

http://www.miuxmiu.com/archives/2013/10/27/ipad_ios7_safari_user_agent.html

やっぱり「iPhone」ではなく「iPad」でしたが、何でしょう、ユーザーエージェントの中に「iPhone」が含まれています。しかもググって出てきたページではすべて「iPhone」が含まれていました。

実機確認してみる

私が所持している実機iPad2(iOS7.0.4)では下記のように「iPhone」という文字列は入っていませんでした。

Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53


私のサーバーへの最近のアクセスログでは、「iPad」が含まれるユーザーエージェントは下記のようになっています。
こちらも「iPhone」という文字列が入っている物はありません。

"Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"
"Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3"
"Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3"
"Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 6_0_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A550 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B147 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/32.0.1700.20 Mobile/10B329 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329"
"Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53"
"Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53"
"Mozilla/5.0 (iPad; CPU OS 7_0_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) GSA/3.1.0.23513 Mobile/11B511 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/31.0.1650.18 Mobile/11B511 Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B511"
"Mozilla/5.0 (iPad; CPU OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) GSA/3.1.0.23513 Mobile/11B554a Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) GSA/3.2.0.25255 Mobile/11B554a Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) GSA/3.2.1.25875 Mobile/11B554a Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/31.0.1650.18 Mobile/11B554a Safari/8536.25"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3"
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53"
"Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11D5127c Safari/9537.53"
"Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"
"Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"

まとめ

  • iOS7のiPadでもユーザーエージェントは「iPhone」ではなく「iPad」のはず
  • iOS7のiPadでユーザーエージェントの中に「iPhone」が含まれている記事はあるが、私が確認できる範囲ではiOS7のiPadのユーザーエージェントには「iPhone」という文字列は入っていない

結局どういったケースで、iPadのユーザーエージェントにiPhoneが含まれるのか分かりませんでしたが、きっとレアケースなんだと思います(なげやり)。