環境
$ php artisan --version
Laravel Framework 6.20.30
$
$ composer show | grep spatie/laravel-permission
spatie/laravel-permission 4.2.0 Permission handling for Laravel 6.0 and up
$
$ php artisan --version
Laravel Framework 6.20.30
$
$ composer show | grep spatie/laravel-permission
spatie/laravel-permission 4.2.0 Permission handling for Laravel 6.0 and up
$
Laravel のバリデーションクラスであるフォームリクエストをユニットテストするためのノウハウ – oki2a24 のリファクタリングを行いました。
PHPUnit のデータプロバイダを利用して、重複をできるだけ取り除いた内容となります。
本投稿での Laravel 等のバージョンです。
$ php artisan --version
Laravel Framework 6.20.30
$
$ composer show | grep phpunit/phpunit
phpunit/phpunit 9.5.7 The PHP Unit Testing framework.
$
refreshDatabase()
を実行し、次にデータプロバイダを利用するテストメソッドを実行するため。環境構築と指定は、 Laravel 6 で Vue.js 3 を使えるようにするまでの試行錯誤の記録 – oki2a24 の続きとなります。純粋な時系列としては Laravel 6 の Vue.js 3 で、デイトピッカー flatpickr のラッパーシングルファイルコンポーネント (SFC) を作った – oki2a24 の続きとなります。
GET api/files
ファイル情報の配列を取得する。GET api/files/{file}
指定したファイル情報を取得する。POST api/files
ファイルを登録する。PATCH api/files/{file}
指定したファイルを更新する。DELETE api/files/{file}
指定したファイルを削除する。GET api/files
ファイル情報の配列を取得する。GET api/files/{file}
指定したファイル情報を取得する。POST api/files
ファイルを登録する。PATCH api/files/{file}
指定したファイルを更新する。DELETE api/files/{file}
指定したファイルを削除する。ファイル登録時などのレスポンスは、最初、 URL だけでいいや、 DB で管理したく無いし、と思っていました。 しかし、 How to show files already stored on server – FAQ · Wiki · Matias Meno / Dropzone · GitLab を読むと name, size, url が Dropzone.js では必要なようです。 なので、面倒ではありますが DB でこれらを管理しようと思います。。。 こうなると、例えば POST 時のレスポンスは次のようになるかと思います。
{
"name": "file.jpg",
"size": 12345,
"url": "http://localhost/storage/files/rXVtdVkqRvR7G0PYZUtupJNPmM9mPhdqrvkHI4Ly.jpg"
}
npm install --save-dev vue-router@4
でインストールlaravel/routes/web.php
がリクエストを受け付ける。このとき、どんな URL でも 1 つの Blade ビューを返すように設定する。<div id="app"></div>
や <script src="{{ mix('/js/app.js') }}"></script>
などにより、 Vue.js を使えるようになる。本投稿は、 Laravel 6 で Vue.js 3 を使えるようにするまでの試行錯誤の記録 – oki2a24 の続きに当たります。
.eslintrc.js
の extends について
plugin:vue/vue3-recommended
に任せる。eslint:recommended
に任せる。prettier
を使う。npm install --save-dev eslint eslint-config-prettier eslint-plugin-vue prettier
.eslintrc.js
module.exports = {
root: true,
env: {
node: true,
},
extends: [
"plugin:vue/vue3-recommended",
"eslint:recommended",
"prettier",
],
rules: {},
};
{
"tabWidth": 2,
}
package.json
への追加内容$ git diff laravel/package.json
diff --git a/laravel/package.json b/laravel/package.json
index ce4fa08..0cc621e 100644
--- a/laravel/package.json
+++ b/laravel/package.json
@@ -7,7 +7,9 @@
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
- "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
+ "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js",
+ "lint": "eslint --ext .js,.vue --fix --ignore-path .gitignore resources/",
+ "format": "prettier --write --ignore-path .gitignore resources/**/*.{js,vue}"
},
"devDependencies": {
"@vue/compiler-sfc": "^3.0.11",
$
driver:///database?options
。具体的な例: sqlite:////absolute/path/to/database.sqlite?foreign_key_constraints=true