Home > CakePHP | PHP > フレームワークで使われているPHP関数を数えてみた

フレームワークで使われているPHP関数を数えてみた

  • 2008-06-13 (金) 0:30
  • CakePHP | PHP
  • このエントリーをはてなブックマークに追加
この記事の所要時間: 418

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行

CODE:
  1. 16645 array
  2. 1519 in_array
  3. 1151 isset
  4. 889 empty
  5. 486 is_array
  6. 454 str_replace
  7. 378 unset
  8. 314 strpos
  9. 302 array_merge
  10. 270 count
  11. 241 sprintf
  12. 235 preg_quote
  13. 169 define
  14. 165 date
  15. 148 file_exists
  16. 148 preg_match
  17. 146 strtolower
  18. 144 explode
  19. 134 extract
  20. 134 substr

symfony-1.1.0RC2

やはりarray()が一位ですね。Cakeと違うのところでは、sprintf()が3位に来ています。さらに4位にsubstr()、5位にstrlen()と文字列関数が上位に来ています。

ソース行数:179,517行

CODE:
  1. 3534 array
  2. 1083 isset
  3. 729 sprintf
  4. 515 count
  5. 372 substr
  6. 256 strlen
  7. 230 is_null
  8. 229 is_array
  9. 218 dirname
  10. 213 empty
  11. 204 strpos
  12. 201 unset
  13. 198 array_merge
  14. 164 in_array
  15. 156 str_replace
  16. 155 strtolower
  17. 150 preg_match
  18. 134 date
  19. 133 implode
  20. 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行

CODE:
  1. 8686 array
  2. 1528 isset
  3. 1407 count
  4. 999 dirname
  5. 789 is_array
  6. 650 empty
  7. 542 unset
  8. 508 ord
  9. 334 strlen
  10. 326 substr
  11. 295 array_key_exists
  12. 286 defined
  13. 243 explode
  14. 233 is_string
  15. 215 strpos
  16. 205 preg_match
  17. 202 date
  18. 201 strtolower
  19. 189 define
  20. 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
http://www.1x1.jp/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関数を数えてみた [...]

Home > CakePHP | PHP > フレームワークで使われているPHP関数を数えてみた

検索
フィード
メタ情報

Return to page top