WEBアプリ開発初心者が3つのWEBフレームワークを試してみる ～Laravelインストール編～

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398359/dad493b2-5f8b-14b6-d26a-2561675e4ed8.png)

# Why

これまでWEBアプリケーションの開発はやらずにBIツールを利用しようと思っていたのですが、

- BIツールではより細かい調整やデータの入力などが実現できないことがあった

- バックエンドをメインでやっていきたいが、WEBアプリケーションがどのように動いているのか泥臭いところを知りたい

といったことがあり、実際に触ってみようと思いました。

そこで開発言語とフレームワークについて調べたところ、`PHP`+`Laravel`, `Ruby`+`Rails`, `Python`+`Django`では初心者目線ではそれぞれに大差はないように感じましたので、簡単なアプリを作って試そうという内容です。

その第一回として`PHP`+`Laravel`についてインストールまでやってみました。

# Laravelって？

**PHPにて書かれたオープンソース(MITライセンス)のWebアプリケーションフレームワーク**のようです。

PHPは結構自由に書ける言語のようですが、Laravelなどのフレームワークを使うことでコードの管理がしやすくなるといったメリットがあるようです。

## 特徴は?

wikipediaを見ると以下のようなことが書かれてました
https://ja.wikipedia.org/wiki/Laravel

>LaravelはフルスタックのWebアプリケーションフレームワークであり、ルーティング、リエクスト処理、ビュー、クエリビルダー、ORM(オブジェクト関係マッピング)、DI(依存性の注入)、認証、ユニットテスト、ブラウザテスト等、現代的なフレームワークが要求される一通りの機能を実装している。またコンソールからArtisanコマンド（Ruby on Railsのrailsコマンドに相当）を利用することにより、コントローラやビューの雛形の作成、データベーススキーマの作成等、一通りの作業を行うことができる。また、ユーザのオリジナルのArtisanコマンドを作成したり、コントローラ等の通常のコード内からArtisanコマンドを呼び出すといったこともできる。

## ほかのPHPフレームワークとの違いは？

ほかにもPHPフレームワークはあるようですが、Google Trendsを見てもLaravelが圧倒しているようです。

| 技術 | 初版 |
|:--:|:--:|:--:|
| CakePHP | 2005年4月 |
| CodeIgniter | 2006年2月 |
| Symfony | 2007年1月 |
| Laravel | 2011年6月 |
| FuelPHP | 2011年8月 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398359/62d3d6d5-3f5b-717b-273d-2e3b89e059f9.png)

# ここでやること
- Laravelのインストール
  - (事前準備) XAMPPのインストール (comporserで必要なPHPをインストールするため)
  - (事前準備) comporserのインストール
  - (事前準備) Laravelのインストール
- 少し触ってみる
  - プロジェクト作成  
  - Hello Worldページを作成
  - URLの階層に`helloworld`を追加
  - プロジェクトをローカルPCにデプロイ
  - アクセスする

# インストール

## 環境
- windows 10

以下の公式ページを参考にしました。

https://laravel.com/


## Installing Laravel

Laravelのインストールには[Comporser](https://getcomposer.org/)を使用します。そのcomporserにはPHPのインストールが要件として必要です。したがって　`PHP(XAMPPにて)インストール`→`Comporserインストール`→`Laravel`という手順でLaravelを構築します

### XAMPPをインストールする

https://www.apachefriends.org/index.html


### Composerをインストールする

https://getcomposer.org/

途中でPHPのパスを求められますので、`<YOUR_XAMPP_DIR>/php/php.exe`(デフォルトは`C:\xampp\php\php.exe`)入力します。

### Laravelのインストール

https://laravel.com/docs/6.x#installation

#### Via Laravel Installer

以下のコマンドを実行

```
composer global require laravel/installer
```

# 少し触ってみる

#### プロジェクトの作成

```
laravel new blog
```

#### Hello Worldページを作成

`resources/views/welcome.blade.php`をコピーし、`resources/views/helloworld.blade.php`となるように保存する

その後内容を変更する

内容は単純で、`Hello World`と表示するようにしたもの

```
・・・
    <body>
        <div class="flex-center position-ref full-height">
            <div class="content">
                <div class="title m-b-md">
                    Hello World
                </div>
            </div>
        </div>
    </body>
・・・
```

#### URLの階層に`helloworld`を追加

`routes/web.php`のファイル内の末尾に、以下の記述を追加する

```
Route::get('helloworld', function () {
    return view('helloworld');
});
```

#### プロジェクトのデプロイ

以下のコマンドを実行し、localhostに8000ポートでホストさせる

```
php artisan serve --host localhost --port 8000
```

#### アクセスする

以下のURLにアクセスすると、画面が表示される

http://localhost:8000/helloworld

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398359/00846d78-4ba5-96bd-9ddf-588303000be8.png)

## 所感

とりあえず構築はサクッとできました

LaravelはデフォルトでAWSのサービス(SQSやS3など)が利用できるようで、そのあたりも試せるような比較ができるとよいなと思っています。

またそもそも話として、WEB初学者なのでMVCやらなんやら覚えることが多そうです。



## 参考

https://proengineer.internous.co.jp/content/columnfeature/13814