人生初のphpフレームワークでボクがLaravelでなくSlim3を選択した理由

# 目次

[Slim3_PHP Advent Calendar 2018](https://qiita.com/advent-calendar/2018/slim3_php)
こちらから順番に追えます。

- 前回
    - [phpフレームワークSlim3を導入しよう、のまえにComposerを導入しよう](https://qiita.com/http_kato83/items/b70be906d51f8150808b)
- 次回
    - [PHPのSlim3でサクッとHelloWorldを表示させてみよう（使い方）](https://qiita.com/http_kato83/items/2252b39e2499a43fcfd1)

# なぜSlim3？

※今回の記事は個人的感想が多いので悪しからず。

### Less Is More

この考え方、しゅき……

Slim3はとてもとてもシンプル、軽量フレームワークと言われるだけあります。

では実際にどれだけ軽量か、Laravelちゃんと比較してみましょう。

# 実測

XAMPPのhtdocsディレクトリに新しく`slim`と`laravel`ディレクトリを作って（別にファイル名は何でもいい）、それぞれインストールされるものとサイズを比較してみましょう。

 ### Slimをインストール

slimディレクトリ内で`Shift + 右クリック`にて、WIndows PowerShellを起動し、以下のコマンドでSlimをインストール！

```shell
composer require slim/slim
```

```shell
ユーザー名MacBook:slim3 ユーザー名$ composer require slim/slim

Using version ^3.11 for slim/slim
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 6 installs, 0 updates, 0 removals
  - Installing psr/container (1.0.0): Loading from cache #1
  - Installing container-interop/container-interop (1.2.0): Loading from cache #2
  - Installing nikic/fast-route (v1.3.0): Loading from cache #3
  - Installing psr/http-message (1.0.1): Loading from cache #4
  - Installing pimple/pimple (v3.2.3): Loading from cache #5
  - Installing slim/slim (3.11.0): Loading from cache #6
Writing lock file
Generating autoload files
```

6つですね、Slimを動かすために本体含め6つのパッケージがインストールされました。

<img width="314" alt="スクリーンショット 2018-12-14 9.51.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/158800/320707df-25dc-377a-71e1-9da64307aae0.png">

**0.6MB**ですね。

### Laravel

```shell
katouyuoMacBook:slim3 yuki$ cd ../laravel/
katouyuoMacBook:laravel yuki$ composer require laravel/laravel
Using version ^5.7 for laravel/laravel
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 54 installs, 0 updates, 0 removals
  - Installing symfony/polyfill-php72 (v1.10.0): Loading from cache #1
  - Installing symfony/polyfill-mbstring (v1.10.0): Loading from cache #2
  - Installing symfony/var-dumper (v4.2.1): Loading from cache #3
  - Installing symfony/contracts (v1.0.2): Loading from cache #4
  - Installing symfony/console (v4.2.1): Loading from cache #5
  - Installing psr/log (1.1.0): Loading from cache #6
  - Installing symfony/debug (v4.2.1): Loading from cache #7
  - Installing nikic/php-parser (v4.1.0): Loading from cache #8
  - Installing jakub-onderka/php-console-color (v0.2): Loading from cache #9
  - Installing jakub-onderka/php-console-highlighter (v0.4): Loading from cache #10
  - Installing dnoegel/php-xdg-base-dir (0.1): Loading from cache #11
  - Installing psy/psysh (v0.9.9): Loading from cache #12
  - Installing vlucas/phpdotenv (v2.5.1): Loading from cache #13
  - Installing symfony/css-selector (v4.2.1): Loading from cache #14
  - Installing tijsverkoyen/css-to-inline-styles (2.2.1): Loading from cache #15
  - Installing symfony/routing (v4.2.1): Loading from cache #16
  - Installing symfony/process (v4.2.1): Loading from cache #17
  - Installing symfony/polyfill-ctype (v1.10.0): Loading from cache #18
  - Installing symfony/http-foundation (v4.2.1): Loading from cache #19
  - Installing symfony/event-dispatcher (v4.2.1): Loading from cache #20
  - Installing symfony/http-kernel (v4.2.1): Loading from cache #21
  - Installing symfony/finder (v4.2.1): Loading from cache #22
  - Installing doctrine/lexer (v1.0.1): Loading from cache #23
  - Installing egulias/email-validator (2.1.7): Loading from cache #24
  - Installing swiftmailer/swiftmailer (v6.1.3): Loading from cache #25
  - Installing paragonie/random_compat (v9.99.99): Loading from cache #26
  - Installing ramsey/uuid (3.8.0): Loading from cache #27
  - Installing psr/simple-cache (1.0.1): Loading from cache #28
  - Installing psr/container (1.0.0): Loading from cache #29
  - Installing opis/closure (3.1.1): Loading from cache #30
  - Installing symfony/translation (v4.2.1): Loading from cache #31
  - Installing nesbot/carbon (1.36.1): Loading from cache #32
  - Installing monolog/monolog (1.24.0): Loading from cache #33
  - Installing league/flysystem (1.0.49): Loading from cache #34
  - Installing erusev/parsedown (1.7.1): Loading from cache #35
  - Installing dragonmantank/cron-expression (v2.2.0): Loading from cache #36
  - Installing doctrine/inflector (v1.3.0): Loading from cache #37
  - Installing guzzlehttp/promises (v1.3.1): Loading from cache #38
  - Installing ralouphie/getallheaders (2.0.5): Loading from cache #39
  - Installing psr/http-message (1.0.1): Loading from cache #40
  - Installing guzzlehttp/psr7 (1.5.2): Loading from cache #41
  - Installing guzzlehttp/guzzle (6.3.3): Loading from cache #42
  - Installing laravel/slack-notification-channel (v1.0.3): Loading from cache #43
  - Installing laravel/framework (v5.7.17): Loading from cache #44
  - Installing lcobucci/jwt (3.2.5): Loading from cache #45
  - Installing php-http/promise (v1.0.0): Loading from cache46 #
  - Installing php-http/httplug (v1.1.0): Loading from cache #47
  - Installing php-http/guzzle6-adapter (v1.1.1): Loading from cache #48
  - Installing zendframework/zend-diactoros (1.8.6): Loading from cache #49
  - Installing nexmo/client (1.5.2): Loading from cache #50
  - Installing laravel/nexmo-notification-channel (v1.0.1): Loading from cache #51
  - Installing laravel/tinker (v1.0.8): Loading from cache #52
  - Installing fideloper/proxy (4.0.0): Loading from cache #53
  - Installing laravel/laravel (v5.7.15): Loading from cache #54
##長すぎるのでダウンロード以外の処理は中略##
Writing lock file
Generating autoload files
```

54つですね、Laravelを動かすために本体含め54つのパッケージがインストールされました。  
多い……これ使いこなせる気がしないですよね。

これからWebアプリを作ろうと思っている人にとってはアプリを作るために勉強に時間がかなりかかって主な目的を忘れるなんてこと、普通にありそうですねこれ。

<img width="310" alt="スクリーンショット 2018-12-14 10.11.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/158800/5ace656c-d036-eced-b3e0-8c73fbda1f09.png">

**16.5MB**ですね（困惑
約27倍くらいデカイです。

# まとめ

玄人や、phpと一緒にLaravelを学んだ人はLaravelを使うのが吉

phpだけを学んでこれからなにかWebアプリを構築したいのであれば規模にかかわらず、学習コストの低いSlimを使ってフレームワークでどんな事ができるのか、それを確認してみるのが吉