おれ、エンジニアになるよ。

エンジニア志望の大学生だった若造がISUCON7を通して見事就職した後、今度は一人前のエンジニアになることを目指す成長物語

Laravel5.5の始め方

こんばんは、nchaaaです。

 

今回は、Laravel5.5でアプリケーションを作る時の、始めにやることリスト的なのをまとめてみようと思います。

というのも、今後0からアプリケーションを作る際の手順を確立したく、自分用メモとしも残そうと思ったからです。

 

ちなみにこの記事では、Laravel5.5の事始めとしてざっくりとした手順を紹介していくので、コードの細かいところまでは見ませんので悪しからず。

 

 

ポイントは以下3つ。

主に公式ドキュメント参考にしています。

インストール 5.5 Laravel

  •  MVC作るまでの下準備
  • artisanコマンドでControllerとModelを作っちゃおう
  • 2コマンドでログイン機能で作っちゃおう

 

 

MVCを作るまでの下準備 

 

1.まずはLaravelのインストールです。

これでLaravelプロジェクトができます。

「myapp」の部分は、自分のつけたいプロジェクト名になります。

composer create-project laravel/laravel --prefer-dist myapp

 

 2.DBの接続情報を設定していきます。

Laravelにはconfig/database.phpと.envのそれぞれにDB情報を記述できますが、.envの方が優先されますのでご注意を。

※以下は開発環境がLaradockの場合(DB_HOSTは適宜読み替えてください)

DB_CONNECTION=mysql
DB_HOST=laradock_mysql_1
DB_PORT=3306
DB_DATABASE=myapp
DB_USERNAME=root
DB_PASSWORD=root

 

3. マイグレーションファイルの作成・編集

artisanコマンドでマイグレーションファイルを作成します。

create_XXX_tableのXXXはテーブル名になるので、適宜変更します。

php artisan make:migration create_products_table

 

マイグレーションファイルができたら、中身を定義していきます。

例えばこんな感じ。

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->text('name');
$table->integer('price');
$table->text('description');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('products');
}
}

 

4. マイグレーションの実行

マイグレーションファイルができたらそれを実行します。

php artisan migrate

 

 これでDBにproductsテーブルが作成されます。

この時点で5レコード分のデータを入れておくといいかもしれません。

(Seederでデータを入れるという方法もあります)

※ ここでは割愛してますが、もちろんDBはあらかじめ作っておく必要があります

 

これで下準備は完了です。

 

 

 

artisanコマンドでControllerとModelを作っちゃおう

 ここからMVCを作っていきます。

ControllerとModelはartisanコマンドで簡単に作ることができますが、Laravelのviewはbladeというテンプレートエンジンを使います。

このbladeファイルの使い方はまた別の記事でまとめようと思います。

 

1. artisanコマンドでModelを作成

まずはartrisanコマンドでModelを作ります。

Model名の最初は大文字で始まります。

php artisan make:model Product

これでmyapp/app/以下にProduct.phpが作成されます。

 ここでは特に編集しなくてもいいです。

 

2. artisanコマンドでControllerを作成

次にControllerを作っていきます。

php artisan make:controller ProductController

 

myapp/app/Http/Controllers/以下にProductController.phpができます。

Productモデルを使用するので、これを明示的に宣言します。

use App\Product;

 

productsテーブルから全件取得したい場合はall()メソッドでごっそり取ってきます。

public function index()
{
$products = Product::all();
return view('product.index', ['products' => $products]);
}

 

超簡単ではありますが、ざっくりこんな感じです。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Product;

class ArticleController extends Controller
{
/**
* 商品一覧を表示
* http://myapp.com/
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index()
{
$products = Product::all();
return view('product.index', ['products' => $products]);
}
}

 

viewのbladeファイルは割愛します。(適当に作ってくださいww)

 

最後にルーティングを設定します。

Laravelではapp/routes/web.phpルーターになります。

書き方はこんな感じです。

Route::get('/', 'ProductController@index');

 

これでproductsテーブルから全データを取得して表示するアプリケーションができました。

 

 

 

2コマンドでログイン機能を作っちゃおう

最後にログイン機能の実装です。

実は2コマンド叩くだけでできてしまいます。

公式にも書いてあるので間違いありません!ww

認証 5.5 Laravel

 

まずはartisanコマンドでログイン機能をスキャフォールドします。

php artisan make:auth

 

次にマイグレーションの実行です。

実は、ログイン機能に必要なマイグレーションファイルは初めから用意されています。

2014_10_12_000000_create_users_table.php2014_10_12_100000_create_password_resets_table.php

がそれに当たり、これを実行するだけです。

php artisan migrate

/registerにアクセスしたら以下のようにログイン画面ができています。

f:id:matsuda-juri:20181203231020p:plain


 これで認証処理はできているので、ログイン後の画面遷移等をカスタムしていけばよりアプリケーションっぽくなっていきます。

 

 

 

以上がLaravel事始めのざっくりとした手順でした。

MVCについては、人それぞれどこから作っていくかの好みがあるとは思います。

ぼく個人的には、

Model -> Controller -> View -> Router

の順で作っていくのが好きなので、このフローを確立していきたいと思います。

 

次回はLaravelのリクエストフローについてまとめてみたいと思います。

このリクエストフローがちょっとまだ慣れないので、少し時間がかかるかもしれませんが、頑張ってまとめます!

 

ではでは、今日はこの辺で。