MacでLaravel + PHP + Composer + MySQL を使って簡単なメモアプリを作成する手順
この記事では、Mac環境で Laravel + PHP + Composer + MySQL を使って「メモアプリ」を最小構成で作成する手順を紹介します。
✅ 前提環境
- macOS(Ventura 以降推奨)
- Homebrew インストール済み
1. 開発ツールのインストール
PHP
brew install php
Composer
brew install composer
MySQL
brew install mysql
brew services start mysql
Laravelインストーラ(任意)
composer global require laravel/installer
※ パスが通っていない場合は
~/.zshrc
にexport PATH="$HOME/.composer/vendor/bin:$PATH"
を追記
2. Laravel プロジェクト作成
最小構成で作成
composer create-project laravel/laravel php-memo-app
cd php-memo-app
3. .env 設定(MySQL 接続)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=php_memo_db
DB_USERNAME=root
DB_PASSWORD=
MySQLにデータベースを作成しておく:
CREATE DATABASE php_memo_db;
4. メモ用マイグレーション作成
php artisan make:model Memo -m
database/migrations/xxxx_create_memos_table.php
public function up()
{
Schema::create('memos', function (Blueprint $table) {
$table->id();
$table->string('title', 100);
$table->text('text');
$table->timestamps();
$table->softDeletes();
});
}
php artisan migrate
5. ルーティング設定
routes/web.php
use App\Http\Controllers\MemoController;
Route::resource('memos', MemoController::class);
6. コントローラー作成
php artisan make:controller MemoController --resource
app/Http/Controllers/MemoController.php
use App\Models\Memo;
use Illuminate\Http\Request;
public function index() {
$memos = Memo::all();
return view('memos.index', compact('memos'));
}
public function create() {
return view('memos.create');
}
public function store(Request $request) {
Memo::create($request->only(['title', 'text']));
return redirect()->route('memos.index');
}
public function edit(Memo $memo) {
return view('memos.edit', compact('memo'));
}
public function update(Request $request, Memo $memo) {
$memo->update($request->only(['title', 'text']));
return redirect()->route('memos.index');
}
public function destroy(Memo $memo) {
$memo->delete();
return redirect()->route('memos.index');
}
7. モデル設定
app/Models/Memo.php
class Memo extends Model
{
use SoftDeletes;
protected $fillable = ['title', 'text'];
}
8. Blade テンプレート作成
resources/views/memos/
に以下の3ファイルを作成:
-
index.blade.php
(一覧) -
create.blade.php
(作成) -
edit.blade.php
(編集)
<!-- index.blade.php -->
<h1>メモ一覧</h1>
<a href="{{ route('memos.create') }}">新規作成</a>
<ul>
@foreach ($memos as $memo)
<li>
{{ $memo->title }}
<a href="{{ route('memos.edit', $memo) }}">編集</a>
<form method="POST" action="{{ route('memos.destroy', $memo) }}">
@csrf @method('DELETE')
<button>削除</button>
</form>
</li>
@endforeach
</ul>
<!-- create.blade.php -->
<form method="POST" action="{{ route('memos.store') }}">
@csrf
<input name="title" placeholder="タイトル">
<textarea name="text"></textarea>
<button>保存</button>
</form>
<!-- edit.blade.php -->
<form method="POST" action="{{ route('memos.update', $memo) }}">
@csrf @method('PUT')
<input name="title" value="{{ $memo->title }}">
<textarea name="text">{{ $memo->text }}</textarea>
<button>更新</button>
</form>
9. アプリを起動
php artisan serve
ブラウザで http://localhost:8000/memos
にアクセスすれば、
一覧 → 作成 → 編集 → 削除 の一連の流れが確認できます。
✅ まとめ
この手順では、Vue/React、認証、JSビルドなどの余計な要素を省いて、Laravel本来のシンプルなMVC構成だけで**「純粋なメモCRUDアプリ」**を作成しました。
Qiitaなどでシンプルなサンプルコードを探している方の参考になれば幸いです。