見出し画像

php5なuploaderをlaravelに移植してauroraで使うとか(1) - とりあえずsetup(sail, breeze使ってる) DB構造まで

大体、誰が今更php5でPEARとかMDB2とか使うんだよって話だよ。

前のコード

以下

laravelへの移植にあたっては

まあふつーにbladeを使いますかあ、breezeはテンプレとして使ってもいいと思うけど認証は今回供えないし、あってもなくてもどっちでもいいや。でもlaravel.buildを使ってーの、sailは使わせてもらいますん。sail使いたくないとあんま参考になんないかもしれないね。

curl -s "https://laravel.build/example-app?with=mysql" | bash

こうなった場合はシステムのdockerが古い

ERROR: Invalid interpolation format for "laravel.test" option in service "services": "${APP_PORT:-80}:80"
ERROR: Invalid interpolation format for "laravel.test" option in service "services": "${APP_PORT:-80}:80"
ERROR: Invalid interpolation format for "laravel.test" option in service "services": "${APP_PORT:-80}:80"
ERROR: Invalid interpolation format for "laravel.test" option in service "services": "${APP_PORT:-80}:80"

Get started with: cd example-app && ./vendor/bin/sail up
% cd example-app
% vi docker-compose.yml

version: "3"

とかを先頭に加える必要がある。その後

./vendor/bin/sail up

する(とりあえず)

レポジトリを用意した

今回は

https://gitlab.com/catatsumuri/simple-uploader-laravel

というレポジトリを用意した。まあここに投入するのであるが、このままだとport80をlistenしていてなんとなくキモいので8000ポートに変更する。まあ久々のlaravelの記事だしちゃんと書くか。

APP_NAME="Simple Uploader"
APP_ENV=local
APP_KEY=base64:UK0MaqSLoNHx8kuFc3QT8oHZNoEUdULvEdLBLS+tjbU=
APP_DEBUG=true
APP_URL=http://localhost
APP_PORT=8000

APP_PORTに8000を指定した。何ならAPP_NAMEも変更してある。しかしこの.envはVCSに含まれないので後から.exampleにコピーしておこう。

いずれにせよ。

./vendor/bin/sail up

するとhttp://server:8000/で

例のアレ

こんなんがみえたらまあ成功っちゃ成功だろう

とりあえずこの時点でgitlabにinitial commitとして送っておく

% git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint:   git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint:   git branch -m <name>
Initialized empty Git repository in /home/admin/example-app/.git/
% git add .
% git commit -m "init"
% git pushうんたらかんたらとか

つわけでここまでのrepos作ったから

cloneし直しときましょ

% git clone https://gitlab.com/catatsumuri/simple-uploader-laravel.git

これで取れるか。システムのcomposerつかえないなら

% docker run --rm -it -v $(pwd):/app composer install --ignore-platform-reqs
% cp .env.example .env
% ./vendor/bin/sail up -d
% ./vendor/bin/sail artisan key:gen

とかで一応は使えるだろう。まあ基本的にdockerで動かすの前提で話しているし(dockerじゃなくても動くけどな)

あとmigrateできてるか確認

% ./vendor/bin/sail artisan migrate

   INFO  Preparing database.

  Creating migration table ...................................................... 39ms DONE

   INFO  Running migrations.

  2014_10_12_000000_create_users_table .......................................... 58ms DONE
  2014_10_12_100000_create_password_reset_tokens_table .......................... 35ms DONE
  2019_08_19_000000_create_failed_jobs_table .................................... 52ms DONE
  2019_12_14_000001_create_personal_access_tokens_table ......................... 77ms DONE

usersとか含めて今回必要ないんだけど、まあ何となく付いてきてるから入ったって話

Breeze

でまあやっぱこれ、入れとこう。フロントエンドのコードを吹いてくれるのは楽だし。前にも書いたように、認証は使わねえけどな

% ./vendor/bin/sail composer require laravel/breeze --dev
% ./vendor/bin/sail artisan breeze:install blade

フレームワークは最初の一歩が面倒くせえよなあ、、、キマっちゃえば後は速いけど

viteの設定はまあ例によって同じように書いときますた。hostが違う場合VITE_HOSTに書いといてくださいっていう。

table

まあ極力前のをひっぱりたいなと。前のschemaは

CREATE TABLE uploaded_files (
    id INT AUTO_INCREMENT PRIMARY KEY,
    original_name VARCHAR(255) NOT NULL,
    saved_name VARCHAR(255) NOT NULL,
    mime_type VARCHAR(50),
    size INT NOT NULL,
    uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

こんなんなっとりましたからこれに似たような感じでmodelつくりま

% ./vendor/bin/sail artisan make:model -mr UploadedFile

   INFO  Model [app/Models/UploadedFile.php] created successfully.

   INFO  Migration [database/migrations/2024_02_16_180541_create_uploaded_files_table.php] created successfully.

   INFO  Controller [app/Http/Controllers/UploadedFileController.php] created successfully.

migrationができたんで、ま、適当に同じような感じでこさえます

        Schema::create('uploaded_files', function (Blueprint $table) {
            $table->id();
            $table->string('original_name');
            $table->string('saved_name');
            $table->string('mime_type');
            $table->integer('size');
            $table->timestamps();
        });
% ./vendor/bin/sail artisan migrate:fresh --seed

  Dropping all tables .......................................................... 166ms DONE

   INFO  Preparing database.

  Creating migration table ...................................................... 46ms DONE

   INFO  Running migrations.

  2014_10_12_000000_create_users_table .......................................... 76ms DONE
  2014_10_12_100000_create_password_reset_tokens_table .......................... 32ms DONE
  2019_08_19_000000_create_failed_jobs_table .................................... 60ms DONE
  2019_12_14_000001_create_personal_access_tokens_table ......................... 93ms DONE
  2024_02_16_180541_create_uploaded_files_table ................................. 38ms DONE


   INFO  Seeding database.

こんな撫じでした。ま、続きはまた作りましょう







この記事が気に入ったらサポートをしてみませんか?