Laravel入門トップページ


目次

  1. Composerのダウンロードとインストール
  2. コメント掲示板を作成してみよう
    1. Laravelプロジェクトの作成と初期設定
    2. コメント掲示板を作ってみよう
    3. SQLiteを使ってみよう
    4. コメント掲示板の機能を拡張しよう
  3. リレーションシップを使いこなそう
  4. ユーザ認証の機能を実現しよう
  5. マルチ認証の機能を実現しよう
  6. MongoDB に接続しよう
  7. キューを利用しよう
  8. コマンド(コンソール)を利用しよう
  9. 本番環境にデプロイしよう

コメント掲示板を作成してみよう

Laravelプロジェクトの作成と初期設定

このセクションでは,コメントが書き込める掲示板を作成する.このページではプロジェクトの作成と初期設定を行う.なおここで作成したプロジェクトは Github で公開している.

目次に戻る

プロジェクトの作成

ディレクトリを移動する.

[GakuinHana@rin06 ~]$ cd Documents/ ⏎
[GakuinHana@rin06 Documents]$ cd laravel/ ⏎
[GakuinHana@rin06 laravel]$ pwd ⏎
/home/students/GakuinHana/Documents/laravel
[GakuinHana@rin06 laravel]$ ls ⏎
composer.phar

myappという名前のプロジェクトを作成しよう.php composer.phar create-project --prefer-dist laravel/laravel=5.8 myappコマンドを実行しプロジェクトを作成する.これには数分の時間がかかります.最後に,Application key (毎回異なる) が生成されれば,プロジェクトの作成が完了です.なお,Laravelのバージョンを変更するにはphp composer.phar create-project --prefer-dist laravel/laravel=5.5 myappとすればよい.また,バージョン名を省略して php composer.phar create-project --prefer-dist laravel/laravel myapp とすると現在の最新バージョンでプロジェクトが作成される.

[GakuinHana@rin06 laravel]$ php composer.phar create-project --prefer-dist laravel/laravel=5.8 myapp ⏎
Installing laravel/laravel (v5.8.0)
  - Installing laravel/laravel (v5.8.0): Loading from cache
Created project in myapp

... (省略) ...

phpunit/phpunit suggests installing ext-soap (*)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
> @php artisan key:generate --ansi
Application key set successfully.
[GakuinHana@rin06 laravel]$

目次に戻る

Gitでコミットしておく

作成したプロジェクトに手を加える前に,まずは Git でコミットしておく.

[GakuinHana@rin06 laravel]$ ls ⏎
composer.phar  myapp
[GakuinHana@rin06 laravel]$ cd myapp/ ⏎
[GakuinHana@rin06 myapp]$ ls ⏎
app      bootstrap      composer.lock  database      phpunit.xml  readme.md  routes      storage  vendor
artisan  composer.json  config         package.json  public       resources  server.php  tests    webpack.mix.js
[GakuinHana@rin06 myapp]$ git init ⏎
Initialized empty Git repository in /home/students/GakuinHana/Documents/laravel/myapp/.git/
[GakuinHana@rin06 myapp]$ git add . ⏎
[GakuinHana@rin06 myapp]$ git commit -m'initial commit' ⏎
[master (root-commit) 4d1cb75] initial commit
 88 files changed, 8060 insertions(+)
 create mode 100644 .editorconfig
 create mode 100644 .env.example
 create mode 100644 .gitattributes
 create mode 100644 .gitignore
 create mode 100644 app/Console/Kernel.php

... (省略) ...

 create mode 100644 tests/Feature/ExampleTest.php
 create mode 100644 tests/TestCase.php
 create mode 100644 tests/Unit/ExampleTest.php
 create mode 100644 webpack.mix.js
[GakuinHana@rin06 myapp]$ git log ⏎
commit 4d1cb7596716fbeb516b5b29653f200f87f9d466
Author: Gakuin Hanako <gakuin.hanako@dummy.kobegakuin.ac.jp>
Date:   Wed Sep 25 17:05:31 2019 +0900

    initial commit
[GakuinHana@rin06 myapp]$

目次に戻る

初期設定を行う

myappのディレクトリが作成され,その中に作成されたプロジェクトのディレクトリ構造を確認する.

[GakuinHana@rin06 myapp]$ pwd ⏎
/home/students/GakuinHana/Documents/laravel/myapp
[GakuinHana@rin06 myapp]$ ls -a ⏎
.              .gitattributes  composer.lock  readme.md   vendor
..             .gitignore      config         resources   webpack.mix.js
.editorconfig  app             database       routes
.env           artisan         package.json   server.php
.env.example   bootstrap       phpunit.xml    storage
.git           composer.json   public         tests
[GakuinHana@rin06 myapp]$

目次に戻る

空のデータベースファイルを作成する

Sqlite用に空のデータベースファイル database/database.sqlite を作成する.

[GakuinHana@rin06 myapp]$ ls ⏎
app        composer.json  database      public     routes      tests
artisan    composer.lock  package.json  readme.md  server.php  vendor
bootstrap  config         phpunit.xml   resources  storage     webpack.mix.js
[GakuinHana@rin06 myapp]$ cd database ⏎
[GakuinHana@rin06 database]$ ls ⏎
factories  migrations  seeds
[GakuinHana@rin06 database]$ touch database.sqlite ⏎
[GakuinHana@rin06 database]$ ls ⏎
database.sqlite  factories  migrations  seeds
[GakuinHana@rin06 database]$ cd .. ⏎
[GakuinHana@rin06 myapp]$

目次に戻る

.env にプロジェクトの設定を記述する

.env ファイルはデータベースの接続情報などの環境設定を保存するファイルである.ファイル名の先頭が . のファイルは隠しファイルであるため,Linux の ls では見えず,隠しファイルも表示する -a オプションを付けて,ls -a を使わなければならない.標準設定の Windows でもエクスプローラから見えないようになっている.

win-1

大学 PC の Windows 8 では「表示」タブで「隠しファイル」にチェックを入れると,.env ファイルが見えるようになる.

win-2

.env ファイルを修正する.DB_CONNECTIONsqliteに変更し,DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD の行を削除するか,先頭に # を付けてコメントアウトする.

.env (抜粋)
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret

目次に戻る

タイムゾーンと言語の設定

プロジェクトの設定ファイル config/app.php を編集し,タイムゾーンをAsia/Tokyoに,言語をjaに変更する.

config/app.php (抜粋)
    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => 'Asia/Tokyo',

    /*
    |--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => 'ja',

目次に戻る

Webサーバの起動と終了

Webサーバを起動して,Webブラウザからプロジェクトのトップページにアクセスする.このとき,ポート番号は他の学生と重複しないように8000から8400の番号を指定する.例えば,8000番台の下3桁に自分の学籍番号の下3桁を指定すると良い.

[GakuinHana@rin06 myapp]$ php artisan serve --host=rin06.ba.kobegakuin.ac.jp --port 8385 ⏎
Laravel development server started: <http://rin06.ba.kobegakuin.ac.jp:8385>

Webブラウザのアドレスバーにhttp://rin06.ba.kobegakuin.ac.jp:8385 を入力すれば,次のような画面が出るはず.

laravel-1

Webサーバを停止するには Ctrl + C を押す.

[GakuinHana@rin06 myapp]$ php artisan serve --host=rin06.ba.kobegakuin.ac.jp --port 8385 ⏎
Laravel development server started: <http://rin06.ba.kobegakuin.ac.jp:8385>
[Wed Sep 25 17:16:18 2019] 10.106.134.125:51100 [200]: /favicon.ico
[Wed Sep 25 17:17:12 2019] 10.106.134.125:51105 [200]: /favicon.ico
^C
[GakuinHana@rin06 myapp]$

目次に戻る

Gitでコミットしておく

作成したプロジェクトがうまく動作すれば Git でコミットしてこう.

[GakuinHana@rin06 myapp]$ git status ⏎
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   config/app.php
#
no changes added to commit (use "git add" and/or "git commit -a")
[GakuinHana@rin06 myapp]$ git add . ⏎
[GakuinHana@rin06 myapp]$ git commit -m'config' ⏎
[master fc5fea3] config
 1 file changed, 2 insertions(+), 2 deletions(-)
[GakuinHana@rin06 myapp]$ git log --oneline ⏎
fc5fea3 config
4d1cb75 initial commit
[GakuinHana@rin06 myapp]$

目次に戻る