🎷

PHP開発 5日目

2024/05/12に公開

Laravelメモアプリ

ゴールデンウィーク明けで中断していた開発を再開
キャッチアップ(意識高い系)していきます。

新規プロジェクトを作成して
breezeを導入・インストール
MySQLと接続してマイグレート
npm installとランデブ

ここまで一気にやってしまいます。
と思いましたが、結構めんどくさい。
Docker使って環境構築できないかな。。。

Laravel sailってやつね

Dockerデスクトップを立ち上げた後に、、、

curl -s https://laravel.build/memo | bash

このコマンドを実行
めちゃくちゃ長い・・・
流石に中古3万円で買ったマックブックの限界を最近感じます。
M4 Mac欲しいな。M5でさらに革新が起きたら買うかな。
Big SurだからXcodeも最新版インストールできないし。

./vendor/bin/sail up -d

MAMP立ち上げてたからエラーで立ち上がらず
MAMPをstopして再実施
まだエラー
grepで確認してみたけど、80番ポートを何かが使っていて、killしきれませんでした。
中断してMAMPに戻ろう
Mac クリーンインストールしたいな。色々な環境構築したりしてぐちゃぐちゃになってる感がある。Pythonのvenvみたいに毎回仮想環境でできればキレイを保てそうなのだが。
Pythonもやりたいけど、実際にデプロイして運用のことを考えるとPHPの方が安上がりでいいんだよな。LAMPなら安いレンタルサーバーがいくらでもありますし。

環境構築につまずく

躓いたので、今日はBreezeすら導入せずに、メモを書き足して消すだけのアプリにしよう。
疲れた。

追加で作るもの

モデル、コントローラー、View、ルーティング
これだけいじれば今までの知識でできるかな。

メモの機能

最初は書いて消すだけ
削除処理はまだ作ったことない

artisanで作成

php artisan make:model Memo -m -c -r

モデル、コントローラー、-rで雛形を作成
Memoモデルは最初大文字で単数形

memosテーブルにはstring型でmemoカラムを加えてマイグレーションしよう。

$table->string('memo');

memosテーブルが作られました。

Breezeを入れないとルーティングは1つだけですね
Breeze入れると急にごちゃごちゃしてわかりづらいです。
ユーザー認証やらないならとりあえずBreezeない方が良いですね。
後で認証つけたくてBreezeインストールしても大丈夫なのかしら?

Route::get('/', function () {
    return view('welcome');
});

あと、Breeze入れるとフロントがViteでレンダリングされるから、正直よくわからない。
npm run devした時のポートがどうだとか、、、
npm run build した時はそのままサーバーにあげちゃっていいのかしら?この辺がわからぬ。
フロントがカオスすぎる。
ただ、フロントだけで見ると静的サイトジェネレーターとかすごいなって思うのだけれども、別のバックエンドフレームワークと組み合わさった時にどうやって使えばいいのか全然わからない。
この辺がわかる知り合いもいないしな。自分で頑張るしかないか。

ルーティングでコントトーラーを指定する方法
パスを書いてメソッド名の前に@をつければいいんだな。多分、useを使えばパスを短くできるとか損なのかな。

Route::get('/', 'App\Http\Controllers\MemoController@create');

ルーティング関係は思い出してきました。

あとはeloquentを使ってDBからデータを呼び出す方法
理解しきってないから覚えられないんだよな
モデルとの関係は?どうだっけ?

$memos = Memo::all();
dd($memos);

一応、コントラー上で指定してみたら全権取得できました。
コントローラーからcompact関数でViewに渡してLoopで全件表示もできました。

<body>
    @foreach($memos as $memo)
        <p>{{ $memo['memo'] }}</p>
    @endforeach
</body>

あとは追加と削除

追加

Memo::insert([
    "memo" => $request->content,
]);

削除

Memo::where('id', $request->id)->delete();

それぞれコントローラーに書く
eloquentのお作法がわからないな。
その辺の一覧になっている資料が欲しいぜ
ハンズオンや諸学者向けテキストは目的外の書き方を扱わないことが多いから探すのが大変
公式が読めるくらいの実力をつければいいのだが、それはまだまだ

今日は疲れた。眠かった。

また次回

Day5 メモアプリ

Discussion