この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2018-05-29 18:04:03

タイトル: 必ずやることリスト&おすすめ設定

本稿はLaravelプロジェクト作成においてやるべきことをリストアップします。

※個人的なメモのようなものなので参考程度に

※Laravelのバージョンは5.5を対象とします。

※DBはMySQLを前提とします。(違うDBの場合は読み替えてください)

※Laravelが初めての場合はこちらを参照。

 

プロジェクト作成

composer create-project laravel/laravel --prefer-dist プロジェクト名

 

データベースの作成

※MySQLの導入についてはこちらを参照

create database database_name;

 

DBユーザーの作成

GRANT ALL PRIVILEGES 
ON database_name.* 
TO user_name@localhost 
IDENTIFIED BY 'password';

 

.envファイルのDB設定

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=user_name
DB_PASSWORD=password

 

マイグレーションによるカラム定義変更に必要なパッケージのインストール

マイグレーション機能を使用するなら必須。

composer require doctrine/dbal

 

認証システムの導入

Laravelが用意してくれるログイン機能を使用したい場合は必要。

php artisan make:auth

 

マイグレーションの注意点

デフォルトで以下のマイグレーションファイルがある。

・yyyy_mm_dd_000000_create_users_table

・yyyy_mm_dd_100000_create_password_resets_table

Laravelの認証システムを導入する場合は上記の2ファイルは必要。

導入しない場合はファイルを削除して次の項目へ読み進めること。

 

導入する場合、このままマイグレーションするとエラーが出るので要注意・・・。

エラーはキーに指定しているカラムがバイト数オーバーしているという内容。

usersテーブルのemailを以下のように修正。

$table->string('email')->charset('utf8')->unique();

password_resetsのemailを以下のように修正。

$table->string('email')->charset('utf8')->index();

以下のコマンドを実行してテーブルを作成。

php artisan migrate

 

各種ディレクトリの作成

以下は任意。お好みで。

「app」ディレクトリ直下に以下のディレクトリを作成する。

リポジトリー:「Repositories」ディレクトリを作成。

モデル:「Models」ディレクトリを作成。

Util:「Utils」ディレクトリを作成。

ビジネスロジック:「Services」ディレクトリを作成。

 

定数ファイルの作成

「config」ディレクトリ直下に「const.php」ファイルを作成する。

内容はとりあえず以下の通り。

<?php

return [
    'const1' => '定数1',
    'const2' => '定数2',
];

 

独自定義用のcss、jsファイルの作成

ファイル名は任意。

とりあえず以下のファイルを作成。

css:public/css/common.js

js:public/js/common.js

 

画像格納用ディレクトリ・および必須画像の作成

「public」ディレクトリ直下に「img」ディレクトリを作成。

また、ブラウザのタブ、スマホのブックマークで使用する画像を作成して格納する。

ファイル名は任意だが、とりあえず以下の通りにすること。

ブラウザ用:favicon.ico

スマホ用:sm_ico.png

※画像作成に時間がかかると思われる&後で作成したいケースがあると思うので、とりあえず適当な画像を用意すればよい。

 

レイアウトの改良

ページタイトルを設定しやすいように&先ほど作成したcss, jsファイルの読み込みを追記。

resources/views/layouts/app.blade.php

<head>を以下の内容にする。

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>@yield('title1'){{config('app.name')}}@yield('title2')</title>
    

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">

    <link href="{{ asset('css/common.css') }}" rel="stylesheet">
    
    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}"></script>

    <script src="{{ asset('js/common.js') }}"></script>
    
    <!-- ファビコン -->
    <link rel="shortcut icon" href="{{ asset('img/favicon.ico') }}">
    <link rel="icon" type="image/vnd.microsoft.icon" href="{{ asset('img/favicon.ico') }}">
    <!-- スマホブックマークアイコン -->
    <link rel="apple-touch-icon" href="{{ asset('img/sm_ico.png') }}"/>

</head>
 

 

ビューの改良

ページタイトルを設定しやすいように改良。

以下のサンプルファイルを作成して、ビューはサンプルファイルをコピーして作成するようにすると便利。

resources/views/sample.blade.php

@extends('layouts.app')

@section('title1')
@stop

@section('title2')
@stop

@section('content')
@endsection

 

「@section('title1')」にタイトルを記載するとアプリ名の前に任意のタイトルを付与することができる。

「@section('title2')」にタイトルを記載するとアプリ名の後に任意のタイトルを付与することができる。

 

トップページの用意

デフォルトではLaravelの画面が表示されてしまうので適当なものを用意する。

先ほど作成したsample.blade.phpをコピーして以下のファイルを作成する。

resources/views/index.blade.php

内容は任意。とりあえず適当に。

 

コントローラーを作成するので以下のコマンドを実行する。

php artisan make:controller IndexController

 

コントローラークラスの内容を以下のように修正

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class IndexController extends Controller
{

    public function index()
    {
        return view('index');
    }

}

 

ルーティングに以下の一文を追加。

/routes/web.php

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

 

 

とりあえず以上。

随時追記。