gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

Slimは本当にスリムなのだろうか?

ちょいと気になったり興味があったりしたので、いくつかの「比較的(日本で)ポピュラーと思われる」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から、ってのは、割と入門的な位置に行けそうだなぁ、と、改めて感じるところでございます。

*1:findをリダイレクトして「行頭に wc -l」の置換かましたのを実行した結果をリダイレクトたものの0x20をタブに置換してExcelでsum w