はじめに
”セカイを変えるGEEK”を育てるG's ACADEMYが提供する拡張プログラム【G's EXPANSION Laravel講座】を受講しました。
拡張プログラムはG's ACADEMYの生徒でなくても受講できます。
今回の講座ではPHPのフレームワークである「Laravel」を学んだので、その内容についてまとめます。
講座の概要
講座は2ステップで進みます。
- オンデマンド動画(自己学習)
- ライブ授業(講師のガイドに従って一緒にコードを書く)
①オンデマンド動画での自己学習
講座に申し込むと動画教材と資料が配信されます。動画は2本でそれぞれ50分ほど。資料には実際に使うコードなどが書いてあります。
オンデマンド動画では「本の管理アプリ」の作成を通じて以下のことを学びました。
- Laravelの環境構築
- CRUD処理(登録・表示・更新・削除)
特にオンデマンド動画で学んだ環境構築はライブ授業でもそのまま使いますので、何度もやっておくことをお勧めします。私はライブ授業までに環境構築を5回以上やりました。このくらいやっておくと体が覚えてくれるのでスムーズにライブ授業に入れると思います。
②ライブ授業
オンラインでのライブ授業が2回あります。1回あたり2.5時間ほど。
単なる座学ではなく、受講者もその場でコーディングをしてアプリの完成を目指します。
ライブ授業では「チーム管理のアプリ」の作成を通じて以下のことを学びました。
- リレーションデータベース
- メール送信機能
- 画像アップロード機能
- Gateを使ったログイン認証切り分け
- ページ毎のCSS、jsの実装
- CRUD処理(登録・表示・更新・削除)をより簡単に実装する方法
講座の内容紹介
①オンデマンド動画の内容
環境構築
今回の講座ではAWS Cloud9上にLaravelの開発環境を作って、そこにコードを書いていきます。
※AWS Cloud9とはブラウザ上でアプリ開発を行えるクラウド上の統合環境です。
動画の中で環境構築はこんな流れで進めていきます。
1. Cloud9でのプロジェクト立ち上げ
2. PHPのセットアップ
3. Laravelのインストール
4. データベースの作成
5. Laravelプロジェクトの初期設定
6. phpMyAdminの設定
なお、Cloud9/Laravelでの環境構築をやってみたい方はG's ACADEMY校長の山崎先生のこちらの動画がとても参考になりますのでこちらもどうぞ!
ログイン認証の実装
Webアプリに欠かせないログイン認証の機能ですが、これを自力で実装しようと思ったらとても大変です。しかしLaravelにはログイン認証を簡単に実装できる機能があります。
例えばLaravel 9.xでは次のようにターミナルに数行のコマンドをうちます。
$ php artisan migrate
$ composer require laravel/ui
$ php artisan ui vue --auth
$ npm install
$ npm run dev
$ npm run dev
これだけでこんなログイン画面が実装できます。これは便利!
emailとパスワードを登録済みのユーザーがログインできる仕様
簡単なCRUD機能の実装
「本の管理アプリ」の作成を通じてCRUD処理(データの作成、読み出し、更新、削除)を学びます。
実際にやることはこんな感じ。
1. マイグレーションファイルを使ってデータベースにテーブル作成
2. MVC(モデル、ビュー、コントローラー)の作成
3. ルーティングの設定
4. Bladeファイルの作成
5. コントローラーにCRUD処理を実装
②ライブ講義の内容
2.5時間×2回のライブ講義(オンライン)があります。
ライブ講義ではその場でAWS Cloud9にLaravel開発環境を構築して、そこにコーディングしていきます。
1回目の講義では「チームの作成・管理アプリ」の作成を通じて、リレーションデータベースについて学びます。
ログインユーザーを登録するusersテーブルと、チームの情報を登録するteamsテーブルとの間に「中間テーブル」を持たせます。
ログインユーザーがオーナーになってチームを作成し、オーナー以外のユーザーは自由にチームに参加ができる、というアプリ
少し高度なリレーションデータベースの実装を行いました。オンデマンド動画で学んだことの復習も含めてやっていくのでここで理解が深まります。
2回目の講義では
・メール送信機能
・画像のアップロードと表示
・ユーザー権限によるページ表示の変更
・CRUD処理実装のショートカット版
をやります。
これまでの講義でやってきたCRUD処理をより簡単に実装するショートカット方法を学べるので、開発がグッと楽になります。
成果物
ライブ授業は結構な速度で進んでいきます。授業当日はまずは動くアプリを作ることに集中。授業後もしばらくはアーカイブ動画を見たり資料を閲覧したりできるので何度もやって身につけていくといいと思います。
私はこの講座で学んだことをベースにしてLaravelを使って「写真の共有&タグ付けアプリ」を作成しました。ローンチして私自身が所属する少年サッカーチームの保護者の間で使ってもらっています。
最後に
私自身は今回のLaravel講座で手を動かしながらアプリ実装をすることで、Laravelを使ったアプリ開発についてかなり理解が深まりました。
・特定の言語を学んでいるが違う言語に挑戦したいエンジニア
・独学しているが、実践する講座でレベルアップしたい駆け出しエンジニア
のような方々にとってもおすすめできる講座だと思います!