ちょいと気になったり興味があったりしたので、いくつかの「比較的(日本で)ポピュラーと思われる」PHP Web Application Framerowkの、行数とかファイル数とかを調べてみました。
まずインストールですが、本日のタイミングで
composer.phar create-project laravel/laravel laravel composer.phar create-project cakephp/app cakephp composer.phar create-project symfony/framework-standard-edition symfony composer.phar create-project kenjis/codeigniter-composer-installer codeigniter composer.phar create-project slim/slim-skeleton slim
という感じで一通り入れています。
バージョンとかの細かい違いがあると思うので、その辺は適宜脳内補完をお願いいたします。
また、ファイル数や行数は、基本的には以下のように調べています。
# find vendor/ -name "*.php" | xargs wc -l | tail -n 1 find vendor/ -name "*.php" -type f | wc -l # find FW本体と思われるディレクトリ -name "*.php" | xargs wc -l | tail -n 1 find FW本体と思われるディレクトリ -name "*.php" -type f | wc -l
ただ、上述だと「ファイル数が多くてうまく合計されない」ものもあるので、その辺は適宜よしなにしております*1。
結果。
フレームワーク | 全体ファイル数 | 全体行数 | FW本体と思われるディレクトリ | FWファイル数 | FW行数 |
laravel | 6161 | 832270 | vendor/laravel/framework/ | 857 | 127125 |
symfony | 6134 | 739122 | vendor/symfony/symfony/ | 4055 | 466309 |
cakephp | 4469 | 598447 | vendor/cakephp/ | 872 | 135415 |
codeigniter | 258 | 78948 | vendor/codeigniter/framework/ | 199 | 68492 |
slim | 1424 | 145223 | vendor/slim/slim/ | 47 | 8564 |
Laravelが重量級なのは想像通り、cakephpもそれなりに。
symfonyが、思いのほか「フレームワーク本体(と思われる……もしかしたら本体以外が混ざってるのかも)」のファイル数&行数が膨大で、ちょいとびっくり。
codeigniterは「全体としては軽い」んだけど「本体はそこそこの重量」があって。
slimは、「周辺まで含む」と少し行数ファイル数ともあるものの、本体はさすがに貫禄の軽量っぷりw
こうやって見ると、改めて「フレームワーク"を"読む」なら、Slimから、ってのは、割と入門的な位置に行けそうだなぁ、と、改めて感じるところでございます。