Laravel5.5の始め方
こんばんは、nchaaaです。
今回は、Laravel5.5でアプリケーションを作る時の、始めにやることリスト的なのをまとめてみようと思います。
というのも、今後0からアプリケーションを作る際の手順を確立したく、自分用メモとしも残そうと思ったからです。
ちなみにこの記事では、Laravel5.5の事始めとしてざっくりとした手順を紹介していくので、コードの細かいところまでは見ませんので悪しからず。
ポイントは以下3つ。
主に公式ドキュメント参考にしています。
- 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
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名の最初は大文字で始まります。
これでmyapp/app/以下にProduct.phpが作成されます。
ここでは特に編集しなくてもいいです。
2. artisanコマンドでControllerを作成
次にControllerを作っていきます。
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
まずはartisanコマンドでログイン機能をスキャフォールドします。
次にマイグレーションの実行です。
実は、ログイン機能に必要なマイグレーションファイルは初めから用意されています。
2014_10_12_000000_create_users_table.phpと2014_10_12_100000_create_password_resets_table.php
がそれに当たり、これを実行するだけです。
php artisan migrate
/registerにアクセスしたら以下のようにログイン画面ができています。
これで認証処理はできているので、ログイン後の画面遷移等をカスタムしていけばよりアプリケーションっぽくなっていきます。
以上がLaravel事始めのざっくりとした手順でした。
MVCについては、人それぞれどこから作っていくかの好みがあるとは思います。
ぼく個人的には、
Model -> Controller -> View -> Router
の順で作っていくのが好きなので、このフローを確立していきたいと思います。
次回はLaravelのリクエストフローについてまとめてみたいと思います。
このリクエストフローがちょっとまだ慣れないので、少し時間がかかるかもしれませんが、頑張ってまとめます!
ではでは、今日はこの辺で。