Cloud9でLaravel環境

# 背景
こんなことを考えていました。

+ Laravelでアプリケーション作ってみたい。
+ でも開発環境作るのは面倒臭い。
+ 個人端末がごちゃごちゃするのも嫌だ。
+ 開発作業スピードは多少遅くてもいい。
	- そもそも私がなれていないのだから、自分の思考スピードより速い程度で良い
+ 一通りできたらHerokuにデプロイしたい

Cloud9を開発環境にして、Herokuで公開する方法をチョイスしてみました。
他に有力なクラウド開発環境にPaizaCloudがあったのですが、一時期詰めて開発を楽しむには無料プランでは辛かったのです・・・。お金を払えば公開環境を用意しなくてもそのまま公開できるのは魅力なのですが、開発したいと思った時に支払い画面が出ると切ない。

# すでに入っている環境
ワークスペース作成以降試行錯誤中に色々入れたと思います。この辺りでインストールする必要があったものは手順記載を割愛させてください。

+ PHP 7.1
+ MySQL  Ver 14.14 Distrib 5.7.23
+ Composer version 1.7.2
+ Laravel Framework 5.6.33

上記の環境は[Cloud9にLaravel5.5をインストールして使う](
	https://qiita.com/shin1kt/items/118e8007e6bd392f26a9 "Cloud9にLaravel5.5をインストールして使う
	https://qiita.com/shin1kt/items/118e8007e6bd392f26a9") を参考に入れております

# ここからやったこと

1. Cloud9にプロジェクトを作る.~/workspace 直下で コンソール` composer create-project --prefer-dist laravel/laravel myapp ` を叩く ＊(myapp)は作りたいアプリケーション名
1. 出来上がったら、` cd myapp ` で移動する
1. サーバー立ち上げ。
` php artisan  serve --host=$IP --port=$PORT `
	+ ここでhostとportを指定するのに結構長らくハマりました。
1. 動いた:bangbang:ヤッター:raised_hands:
1. 気が済んだので、php artisan  serve は一旦 ctrl + c で停止。
1. ここからDBの設定。まずはmysqlにDB作成。` mysql -u root  ` でログイン。` create database myappdb; ` でDB作成　＊(myappdb)は作りたいDB名 
1. .envに値設定。下記3つ。あくまで開発なのでユーザー名もパスワード設定もとりあえずこんな感じで。

```
DB_DATABASE=myappdb
DB_USERNAME=root
# DB_PASSWORD=secret
```

1. Model,Controller,migrationファイルを作成する。(Taskは作りたいTable名)

```
php artisan make:model Task -m -c -r
```

1.出来上がったmigrationファイルに欲しいカラムを追加する。カラムの書き方は [Laravel 5.6 データベース：マイグレーション](https://readouble.com/laravel/5.6/ja/migrations.html "Laravel 5.6 データベース：マイグレーション") を参考にしつつ

```
vi database/migrations/2018_08_xx_xxxxxx_create_tasks_table.php 

18 $table->string('name');  // とりあえずstring型nameカラムを作成
```

1. migrationファイルを実行 ` php artisan migrate `
1. routes/web.php にルーティング設定。HTTPSを使うように。
1. app/Providers/AppServiceProvider.php も。

```
 14     public function boot()
 15     {
 16         // default HTTPS
 17         \URL::forceScheme('https');
 18     }
```

1. Controllerにカキカキ。とりあえずは[Laravel入門: 初心者でも10分でWebサービスを作れる！PHPフレームワークLaravelとPaizaCloudの使い方](https://paiza.hatenablog.com/entry/2018/02/16/paizacloud_laravel "Laravel入門: 初心者でも10分でWebサービスを作れる！PHPフレームワークLaravelとPaizaCloudの使い方") のコントローラ設定をほぼそのまま。

1. なんかでdebuglogくらいは出て欲しいので、Controller冒頭でLogのエイリアスを作成しておく

```
<?php

namespace App\Http\Controllers;

use App\Task;
use Illuminate\Http\Request;
use Log; // 追加
```

1. 再び ` php artisan  serve --host=$IP --port=$PORT ` で動かして見る。
1. 動いた:bangbang::bangbang:ヤッター:raised_hands:
[![Image from Gyazo](https://i.gyazo.com/5b3a94543e14589c8b1db4710c862e7f.png)](https://gyazo.com/5b3a94543e14589c8b1db4710c862e7f)

# お世話になった記事
ありがとうございます。

+ Cloud9にLaravel5.5をインストールして使う 
 + https://qiita.com/shin1kt/items/118e8007e6bd392f26a9
+ Laravel 5.6 インストール
 + https://readouble.com/laravel/5.6/ja/installation.html
+ Cloud9でLaravel5.5を動かす
 + https://blog.tkt989.info/2018/03/24/cloud9%E3%81%A7laravel5.5%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99/
+ Laravel入門: 初心者でも10分でWebサービスを作れる！PHPフレームワークLaravelとPaizaCloudの使い方
 + https://paiza.hatenablog.com/entry/2018/02/16/paizacloud_laravel
+ Laravel 5.6 データベース：マイグレーション
 + https://readouble.com/laravel/5.6/ja/migrations.html
+ Laravelでのデバッグのやり方について（Logファサード編）
 + http://laraweb.net/practice/2561/