CakePHPを使ってからempty()を使うようになった、なんて話が以前社内でもあったので、各フレームワークで使われているPHP関数を調べてみました*1。
調べたのはCakePHP/symfony/ZendFrameworkで、それぞれ最新版を使用しています。
あと関数全てを載せると長いので上位20件のみ記載しています。
CakePHP-1.2RC1
array()が圧倒的ですね。2位以下もin_array()から5位のis_array()まではarrayに関係する関数となってます。
さらにarray()自体の数がスゴイです。ソースコードは3つの中で一番少ないのですが(symfonyの約2/3、ZFの約1/3)ですが、array()はsymfonyの約5倍、ZFの約2倍となっています。
いかにCakeがarrayを多用しているかが、良く分かります。
ソース行数:126,469行
16645 array 1519 in_array 1151 isset 889 empty 486 is_array 454 str_replace 378 unset 314 strpos 302 array_merge 270 count 241 sprintf 235 preg_quote 169 define 165 date 148 file_exists 148 preg_match 146 strtolower 144 explode 134 extract 134 substr
symfony-1.1.0RC2
やはりarray()が一位ですね。Cakeと違うのところでは、sprintf()が3位に来ています。さらに4位にsubstr()、5位にstrlen()と文字列関数が上位に来ています。
ソース行数:179,517行
3534 array 1083 isset 729 sprintf 515 count 372 substr 256 strlen 230 is_null 229 is_array 218 dirname 213 empty 204 strpos 201 unset 198 array_merge 164 in_array 156 str_replace 155 strtolower 150 preg_match 134 date 133 implode 124 preg_replace
ZendFramework-1.5.1
ソースコード行数が最も長いZFです。これもやはりarray()が1位となっています。4位にdirname()が入っています。Cakeでは50位(53件)、symfonyで218件(9位)なので、多いように感じます。あとord()が8位に、definedが12位などが上2つとは違う点でしょう。
ord()でソースをgrepしてみるとPDFやLucene、NTP関連のソースが引っかかりました。このへんはライブラリ的要素が強いZFの特徴ですね。
ソース行数:372,103行
8686 array 1528 isset 1407 count 999 dirname 789 is_array 650 empty 542 unset 508 ord 334 strlen 326 substr 295 array_key_exists 286 defined 243 explode 233 is_string 215 strpos 205 preg_match 202 date 201 strtolower 189 define 180 list
DB関数に着目
DB関連の処理は3フレームワーク共にフレームワーク自体に機能があるので、通常はPHPのDB関数を直接実行する必要はありません。これはフレームワーク内の処理も同様で、SQLを直接発行する箇所は1つにまとめておいて、各箇所からはそこを呼び出すイメージです。
よってpg_queryやmysql_queryは1つしか登場しないと思っていました。
Cakeは想像どおりそれぞれ1つしかありませんでした。ZFもPDOを使用しているのでこれらの関数自体が無いのですが、Oracleのoci_executeは2つ(1つはテスト)のみでした。
さて残るsymfonyですが、なぜかmysql_queryが27、pg_queyが20となっていました。あちこちに書いているのには、何か理由があるのでしょうか(歴史的な理由?)。
最後に関数の種類
最後に関数の種類ですが、3フレームワーク共に400前後でした。
もう少しじっくり見ると面白いところがあるかもしれませんが、今回はこのあたりで。
*1 array()やempty()など厳密には関数でないもののありますが、ここでは本質では無いのでスルーしてください;-)
トラックバック:1
- このエントリーのトラックバックURL
- /blog/2008/06/php_framework_function_count.html/trackback
- Listed below are links to weblogs that reference
- フレームワークで使われているPHP関数を数えてみた from Shin x blog
- pingback from Symfony.es » Blog Archive » Las 20 funciones PHP más utilizadas por Symfony 08-06-18 (水) 19:03
-
[…] Fuente: フレームワークで使われているPHP関数を数えてみた […]