Evernote風のメモアプリの開発を通して PHP と Laravel の違いを理解する
本教材では、Dockerを使用して開発環境を構築し、PHPのみとLaravelでそれぞれ同じEvernote風のメモアプリケーションを作成します。
メモアプリの機能としては、ユーザー登録から始まり、ログイン・ログアウト、メモの投稿・更新・削除を実装していきます。
はじめにPHPのみでの開発をすることで、PHPへの理解度を深めていきます。
Laravelフレームワークの内部では、もちろんPHPが使用されて動いています。
それぞれのメモアプリ開発することで比較して、Laravelを表面的に理解するのではなく、Laravelのメリットを実際に体感することができます。
学習内容
- PHPのみでのアプリケーションの開発の流れ
- PHPのみでのユーザー登録機能の作り方
- PHPのみでのログイン機能の作り方
- PHPのみでのログアウト機能の作り方
- PHPのみでのメモの投稿・更新・削除機能の作り方
- Laravelのアプリケーションの開発の流れ
- Laravelのユーザー登録機能の使用方法
- Laravelのログイン登録機能の使用方法
- Laravelのログアウト登録機能の使用方法
- Laravelのメモの投稿・更新・削除機能の作り方
- アプリケーションでの、それぞれのSQL使用方法(SELECT/INSERT/UPDATE/DELETE)
技術的には具体的に下記のことが学べます。
- dockerを使用した開発方法
- phpMyAdminを使用して、データベースの作成やテーブルの作成
- 簡単なデータベースのテーブル設計(使用するテーブルは2つです)
- PHPに関する内容
- PHPのみでのURLルーティング
- require関数を使用した共通関数の読み込み
- PDOクラスを使用したデータベースへのデータの取得・追加・更新・削除
- フォームデータの受け渡し($_POST, $_GET)
- セッション($_SESSION)情報の使い方
- password_hash関数とpassword_verify関数を用いたログイン
- var_dump関数を使用したデバッグ
- Laravelに関する内容
- アプリ作成に沿ったartisanコマンドの使用方法
- Bladeを使用した画面作成
- ヘルパーの使用方法(dd, old, loggerなど)
- Eloquent ORM、マイグレーション
- ルーティング
- ミドルウェア
- コレクション
- フォームリクエストでのバリデーション
完成物のイメージ
画面構成については、PHPのみバージョンとLaravelバージョンどちらも同じです。
本教材の対象者
- PHPの学習がひと通り終わって、何かWebアプリを作りたい
- PHPのみを使用したアプリケーションの作成を通してPHPの理解を深めたい
- LaravelでWebアプリ作成を初めてみたい
- Laravelを漠然と使っていて、メリットを明確にしたい
受講における必要条件
- HTML/CSSの基礎知識
- PHPでの基礎知識(変数・配列・if文・foreach文・関数・セッションを理解している)
- 簡単なコマンドラインの知識
- データベース(RDBMS)の概念がなんとなくわかっていること
※必須ではありませんが、リポジトリからファイルを取得するので、gitをインストールしておくと便利です。
学ばないこと
本教材では、PHPとLaravelでのWebアプリケーション作成方法や相互の違いを学ぶことを目的にしているため、HTML・CSSの解説は詳しくしていません。
また、本教材で使用するdockerの環境について、dockerの仕組みなどの詳しい説明はしていません。調べていただけると幸いです。
本教材の対応バージョン
言語
- PHP 7.4.10
フレームワーク
- Laravel 8
データベース
- mysql 5.7
環境・ツール
- nginx 1.19.1
- docker 19
- docker-compose 1.27
- phpmyadmin 5.0
OS
- Mac
動作確認済みの環境はCatalinaです。
※2020年11月発売のM1チップを使用しているMacでは現時点(2020/11/25)ではdockerが動きません。なので、M1チップ搭載のMacでは本教材は使用できません。
- Windows
Windows10 Proで環境構築できるように書いています。 Homeエディションには対応していません。
本教材で質問対応可能なOSや環境
- Mac OS
- Windows10 Pro
本教材の構成
0章 はじめに
本教材を進める上での環境を整えたり、設計を解説していきます。
1章 PHPのみで作ってみよう(画面作成)
PHPのみバージョンでの画面作成を行います。
2章 PHPのみで作ってみよう(ユーザー登録・認証機能作成)
PHPのみバージョンでのユーザー登録・認証機能の作成を行います。
3章 PHPのみで作ってみよう(メモ投稿機能作成)
PHPのみバージョンでメモ投稿機能の作成を行います。
4章 Laravelで作ってみよう(画面作成)
Laravelバージョンでの画面作成を行います。
5章 Laravelで作ってみよう(ユーザー登録・認証機能作成)
Laravelバージョンでのユーザー登録・認証機能作成を行います。
6章 Laravelで作ってみよう(メモ投稿機能作成)
Laravelバージョンでのメモ投稿機能の作成を行います。
7章 終わりに
それぞれのバージョンで作成するときのトラブルシューティングを載せていますので、エラーなどを解決する際はご一読ください。また、最後に本教材で作成した2つの成果物を振り返って、メリットやデメリットなどを考えます。
カリキュラム
- 1-1 ディレクトリ(URL)を作成する
- 1-2 静的ファイルのダウンロードと配置
- 1-3 ヘッダー情報の出力関数作成
- 1-4 ユーザー登録画面を作る
- 1-5 ログイン画面を作る
- 1-6 メモ投稿画面を作る
- 2-1 ユーザーテーブル作成と開発する際の注意点について
- 2-2 データベース接続関数の作成
- 2-3 ユーザー登録機能を実装する
- 2-4 バリデーションの共通関数を実装する
- 2-5 ユーザー登録画面にバリデーションを実装する
- 2-6 ログイン機能を実装する
- 2-7 認証情報の共通関数作成
- 2-8 ログイン情報を考慮した画面遷移を実装する