とーますメモ

Ruby on Rails / Goなどの学習メモ

【Laravel】Mac上で環境構築をしてみる

[前提]
※1 homebrewが既にインストールされている
※2 DBはMySQLを使用する

Composerのインストール

Railsでいうgemみたいなパッケージ管理ツールであるComposerをインストールし
ComposerからLaravelをインストール

インストール

$ brew install composer

確認

$ brew info composer

Laravelインストーラのインストール

Composerを利用しインストール

$ composer global require "laravel/installer"

Laravelのインストーラのパスが「$HOME/.composer/vendor/bin」に作成されるので
ここにパスを通す。

~/.bash_profile

export PATH="$PATH:$HOME/.composer/vendor/bin"

.bash_profileの再読込

$ source ~/.bash_profile

確認

$ laravel --version

Laravelで新規プロジェクトの作成

新規プロジェクトを作成したディレクトリに移動し、
そのディレクトリ内で、以下のコマンドでプロジェクトを作成

$ laravel new test_app

※composer経由でインストールする方法もあるが、こちらのほうが覚えやすい。
インストール 5.8 Laravel


しばらくすると、test_appディレクトリが作成され、その中に全てがインストールされるので
test_app内へ移動し、以下のコマンドでWebサーバーを起動させる

$ cd test_app
$ php artisan serve

そしてブラウザで「http://127.0.0.1:8000」にアクセスし、Laravelのトップページが表示されればインストール成功

またLaravel自体のバージョンを確認するには以下のコマンド

$ php artisan --version

各種設定

言語と時刻の設定

config/app.phpで設定

'timezone' => 'Asia/Tokyo',
...
'locale' => 'ja',

DB接続設定

アプリ用のデータベースを予め作成しておく。
※ここでは「test_db」を作成しておく。

ルートディレクトリにある「.env」の以下を編集
※ユーザ名とパスワードは任意

DB_DATABASE=test_db
DB_USERNAME=root
DB_PASSWORD=password

後は以下のコマンドを流して、エラーがでなければOK

$ php artisan migrate

[参考]
Mac OSにLaravelローカル開発環境構築 - Qiita
macOSに Laravel 5.6 をインストールする手順をまとめてみる - Qiita
Laravel ローカル環境構築(for XAMPP) - Laravel学習帳

デバック用ツール(laravel-debugbar)のインストール

インストール

$ composer require barryvdh/laravel-debugbar

config/app.phpの編集

'providers' => [
    ...
    Barryvdh\Debugbar\ServiceProvider::class,
    ...
],

...

'aliases' => [
    ...
    'Debugbar' => Barryvdh\Debugbar\Facade::class,
    ...
],

ルートディレクトリの.envを編集

APP_DEBUG=true

キャッシュをクリア

$ php artisan config:cache

ブラウザで127.0.0.1:8000にアクセスし、ブラウザ下部にデバックバーが出ればOK

アプリ作成の基本

基本的には以下の流れ

1)artisanコマンドでモデル、コントローラ、マイグレーションファイルを作成
2)マイグレーションの定義を記述し、migrate
3)モデルを作成
4)ルーティング設定
5)コントローラとVIEW(resources)を紐づけ
6)画面表示及びデバッグ

モデル作成は以下のサイトを参考に1行ブログを作成するときの例
Webアプリ開発入門 Laravel編のレッスン一覧 | プログラミング学習サービス【paizaラーニング】

1)記事を保存するテーブル作成のためのmigrationファイル
2)記事情報にCRUDに関するDB操作を行うためのmodelファイル
3)モデルにアクセスするためにリクエストを行うcontrollerファイル

を以下のコマンドで一気に作成。

$ php artisan make:model Article -m -c -r
  • m ... migrationも同時作成
  • c ... controllerも同時作成
  • r ... controllerを作成する場合、CRUD用のアクションもコントローラ内に作成される

ルーティングはこんな感じ。以下ではリストページと詳細ページを作成し
後でリンクで呼び出せるように、name関数を使用している。
routes/web.php

Route::get('/articles', 'ArticleController@index')->name('article.list');
Route::get('/article/{id}', 'ArticleController@show')->name('article.show');