0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacでLaravel + PHP + Composer + MySQL を使って簡単なメモアプリを作成する手順

Posted at

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

※ パスが通っていない場合は ~/.zshrcexport 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などでシンプルなサンプルコードを探している方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?