laravel5.8で「TaskHERO」の開発を始めてみる

タスクをこなしていくうえで管理してくれる相棒みたいなものがほしくて、どうせなら覚えたてのlaravelでオリジナルのwebアプリつくれないかと発作的に思い立ったので実践してみます。

緊急事態宣言もでて、3連休もずっとweb開発とFE対策の勉強という感じなのでどんどん進めていきます。

この記事で開発日誌をつけられたらなとおもいつつ、これ書く時間もないなあとおもいつつ、でもこうゆうののこしておきたかったので最後まで頑張ります。

開発環境

  • フレームワーク:laravel5.8.38
  • PHP7.4.13
  • xampp

リポジトリ
https://github.com/atsuaa/TaskHERO

インストールからまとめます。

laravelインストール

composerでインストールします。(composer2.0.8)

composer create-project "laravel/laravel=5.*" 

詰まった点

xamppのルートページにアクセスしてもhome画面が表示されなかった。

解決策

apacheがわのルーティング情報をリライティングする必要があったようです。そこらへんはまだよくわかっていませんので、参考記事のようにこちらのgithubの.htaccessファイルをTaskHERO/(アプリのルートディレクトリ)に置きました。

              Options -MultiViews     
 RewriteEngine On RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ ^$1 [N] RewriteCond %{REQUEST_URI} (\.\w+$) [NC] RewriteRule ^(.*)$ public/$1  RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ server.php

各種設定

次のものを設定しています。

  • DB
  • appname
  • locale

DBは.envファイルに記述します。usernameとpasswordはよしなに。

# .envファイル
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=taskhero
DB_USERNAME=username
DB_PASSWORD=password

/config/app.phpでappnameとlocale情報を編集します。

// /config/app.php
// 16行目
'name' => env('APP_NAME', 'TaskHERO'),
// 70行目
'timezone' => 'Asia/Tokyo',
// 83行目
'locale' => 'ja',

基本設定はいったん終了です。ほかの設定で必要な個所がでてきたらこの記事内であとから追記します。

詰まった点

データベース名の設定を忘れていました。

つぎに出てくるmigrateコマンド実行時に、「nothing to migrate」とでてきたせいでルーティング回りをうたがってだいぶ時間ロスしました。

「nothing to migrate」が出た理由は、初期設定の"laravel"データベースは以前作成しており、そちらにすでに同じテーブルがあったからです。

本来なら「データベースがありません」系のエラーが出てくるんだと思います。

ひとまずログイン機能だけ実装

開発の雰囲気だけ出すためにlaravelに備わっている認証機能だけてっとりばやく用意します。めっちゃ簡単です。

マイグレーションでusers table用意

あとでテーブルの内容は変更します。

いったんマイグレーションを実行してusers tableをデフォルトのものを作っておきます。(認証機能の確認用)

composer dump-autoload
php artisan migrate

デフォルトでcreate_users_tableマイグレーションファイルがあるのでDBはこれだけです。

artisanでauthビュー用意

公式サイトにもある通り、一瞬でログイン処理の実装ができます。(コードを理解するのがまあまあ面倒くさいです)

php artisan make:auth

これでhome画面にアクセスすると右上にログイン、登録リンクが表示され、ログイン用のコントローラー、ビューが一式作成されています。ビューに時間をかけたくないので(デザインセンスもないので)この画面を使っていきます。

自動生成された登録画面

このへんで区切りをつけてつづきは次回にします。

タイピングの遅さが致命的なので助けてください。頑張ります、、