#author("2023-02-18T09:39:34+00:00","default:admin","admin")
#author("2023-02-28T05:12:46+00:00","default:admin","admin")
-[[Laravel関連記事:https://reffect.co.jp/laravel]]

-[[PHPのWeb開発を効率化できるフレームワーク「Laravel」とは?:https://codezine.jp/article/detail/13747]]
-[[Laravelとは何?Laravelの11個の特徴と使う際の注意点を紹介:https://www.acrovision.jp/career/?p=2776]]
-[[Laravelが最高のPHPフレームワークである10の理由:https://www.software-developer-india.com/ja/laravel%E3%81%8C%E6%9C%80%E9%AB%98%E3%81%AEphp%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%E3%81%82%E3%82%8B10%E3%81%AE%E7%90%86%E7%94%B1/]]

-[[ucan-lab/laravel-dacapo:https://github.com/ucan-lab/laravel-dacapo]]
-[[can-lab/docker-laravel:https://github.com/ucan-lab/docker-laravel]]

-[[ECS on FargateでLaravelを動かすときにはまったこと:https://tech.innovator.jp.net/entry/container-error]]

*バージョン [#q7a4bf58]
**Laravel 10 [#o47ef711]
-[[Laravel 10🐿がリリースされたのだ🎉【Laravel 10 新機能:https://qiita.com/7mpy/items/e92dc2e89d9fcf678220]]

**Laravel 9 [#c86237b5]
-[[Laravel 9.0 新機能 キャッチアップ:https://zenn.dev/ohkisuguru/scraps/10fbd327892587]]
-[[1年半振りのメジャーバージョンアップ(予定)!Laravel9の新機能ピックアップ!:https://qiita.com/ucan-lab/items/7bde88a5d29a4e56085d]]
-[[PHPによるWebアプリケーションフレームワーク「Laravel 9」がリリース:https://codezine.jp/article/detail/15575]]

**Laravel 8 [#d593492c]
-[[【Laravel】いつのまにバージョン8になっていたのか:https://nplll.com/2021/02/laravel-version-8-and-9/]]

*基本事項 [#ea5a028e]
-[[[Laravel8.x]Queue(キュー),Job(ジョブ),Worker(ワーカー):https://nyan.blog/2021/02/24/laravel8-xqueue%E3%82%AD%E3%83%A5%E3%83%BCjob%E3%82%B8%E3%83%A7%E3%83%96worker%E3%83%AF%E3%83%BC%E3%82%AB%E3%83%BC/]]
-[[【Laravelスキルアップ講座】Laravel JobとQueueも設定はこんなに簡単:https://reffect.co.jp/laravel/laravel-job-queue-easy-setup]]

**artisan [#g1cc2d2a]

**Eloquent [#b109d478]
-[[Eloquent をおさらい:https://qiita.com/shosho/items/5ca6bdb880b130260586]]

**Queue [#fb03590b]
-Queueはある決まった処理を非同期で実行するための仕組み
-QueueにJobを登録していき、その処理を実行していく

**Job [#h38c9ce3]
-Jobとは処理を実行する本体
-QueueにJobが登録され、queueにあるJobが実行されます

**Worker [#q71adad9]
-Workerは常駐していて、Queueを監視
-Queueがあれば、Jobにデータを渡して処理を実行

*デザインパターン [#y1a957f8]
-[[LaravelでStrategyパターン & Factory Methodパターン:https://tech.012grp.co.jp/entry/laravel-design-pattern]]
-[[Laravel で Service 層を取り入れるときに検討したいこと:https://qiita.com/nunulk/items/6b7a7bbda17192f6b2f5]]

*アプリケーション構造 [#rfa04369]
**Http [#rb1eda37]
***Controllers [#z2e2f35b]
-[[laravelのコントローラの書き方:https://zenn.dev/mo_ri_regen/articles/laravel-contoller]]

-フロントと、ビジネスロジックで取得したデータの橋渡しの役割を担う

***Middleware [#n25ef284]
-[[【Laravel】ルーティングのミドルウェアとは?作成手順と実例 (Route::midlewareの意味など):https://qiita.com/shizen-shin/items/5e050bf07b2257a6a1d7]]
-[[Laravelのミドルウェアを使ってみた【徹底解説】:https://codelikes.com/use-laravel-middleware/]]
-[[Laravel Middleware 調べてみた:https://tech-tech.blog/php/laravel/middleware/]]
-[[Laravel ミドルウェアの設定について:https://qiita.com/ktanoooo/items/a746a96b12489ae56553]]
-[[【Laravel 5.8 】「こんなとき」のミドルウェア全7実例(ダウンロード可):https://blog.capilano-fw.com/?p=3987]]

-ミドルウェアを使うためには、app/Http/Kernel.php に新しく作ったミドルウェアを登録する必要がある
-ミドルウェアを登録する形式は以下の2つがある
--グローバルミドルウェア ... アプリケーション全体に作用させたい場合
--ルートミドルウェア ... 特定のルートに対してのみ作用させたい場合
---ルートミドルウェアを登録するときには、ミドルウェアを呼び出すためのエイリアスも登録する

-ミドルウェアの実施順序
--[[https://laravel.com/docs/8.x/middleware#sorting-middleware]]
--[[Laravelで複数Middlewareを指定するときは優先度も指定しよう:https://qiita.com/kazuhei/items/1de0fc08f4f2e3af4035]]

--基本の処理順
---①グローバルミドルウェア(前処理)
---②ルートミドルウェア(前処理)
---③コンストラクタ内ミドルウェア(前処理)
---④コントローラーの処理
---⑤コンストラクタ内ミドルウェア(後処理)
---⑥ルートミドルウェア(前処理)
---⑦グローバルミドルウェア(前処理)
--LaravelではMiddlewareの優先度を指定することができる
--app/Http/Kernel.phpに書いておく

***Requests [#t4953ccc]
-[[laravel HTTPリクエストまわり 調べてみた:https://tech-tech.blog/php/laravel/request/]]

***Kernel.php [#t54f8915]
-[[Laravel 7.4 Kernelを読む:https://qiita.com/Syy12345-Unity/items/304e0a4b5db3c31c9a5b]]

**Logics [#p4ce9a42]

**Models [#pe2de9b4]
-[[Laravelの登録・更新処理で「$fillable」を検証してみた:https://note.com/makoto0419/n/nf87bc442601b]]
-[[Laravel7 $fillableと$guardedの使い方:https://mebee.info/2020/05/12/post-11098/]]

**Providers [#w9aecb48]
-[[Laravelの構成概念 第3回 サービスプロバイダ編:https://qiita.com/ucan-lab/items/738abfd650be76333da6]]

**Repositories [#j177fcc8]
-[[Laravelアプリケーションでリポジトリパターンを使う方法:https://www.twilio.com/blog/repository-pattern-in-laravel-application-jp]]
-[[リポジトリパターンと Laravel アプリケーションでのディレクトリ構造:https://qiita.com/karayok/items/d7740ab2bd0adbab2e06]]
-[[Laravelでリポジトリを実装してみた+ちょっとした考察:https://zenn.dev/tosa/articles/cb7635a0ee206a]]
-[[【Laravel】Repositoryパターンで実装する:https://pockyblog.com/laravelrepository/]]
-[[[Laravel] DI/リポジトリパターン:https://zenn.dev/snail_tanishi/articles/laravel_di_service_ripository]]

-[[LaravelでRepositoryパターンを実装する-入門編-:https://www.ritolab.com/entry/165]]
-[[LaravelでRepositoryパターンを実装する-実践編-:https://www.ritolab.com/entry/185]]

-Repository(リポジトリ)パターンは、ドメイン駆動型設計の一つとして導入されたもので、データソースへのアクセスの抽象化を提供するもの
-データの永続化に関わるビジネスロジック(データの保存などの操作)を書く

**Services [#w992b87b]
-[[LaravelでService層、Repository層を取り入れる方法とその必要性を簡潔に語る:https://qiita.com/takeyaboo/items/9e0e9969f5d5d9c25d30]]

-[[Laravel サービスコンテナの理解を深める:https://reffect.co.jp/laravel/laravel-service-container-understand]]
-[[Laravel サービスプロバイダーついに理解:https://reffect.co.jp/laravel/laravel-service-provider-understand]]

-[[【Laravel】Laravelのキモ、「サービスコンテナ」の仕組みを理解する〜前編〜:https://yutaro-blog.net/2021/06/30/laravel-service-container-1/]]
-[[【Laravel】Laravelのキモ、「サービスコンテナ」の仕組みを理解する〜後編〜:https://yutaro-blog.net/2021/06/30/laravel-service-container-2/]]

-[[Laravel でサービス(Service)クラスの作り方:https://qiita.com/ntm718/items/14751e6d52b4bebde810]]

-[[LaravelでService層とRepository層を取り入れる:https://enjoyworks.jp/tech-blog/7743]]
-[[LaravelでServiceクラスを作成する手順まとめ!FacadeやProviderの作り方も解説!:https://himakuro.com/laravel-service-class-guide]]
-[[Laravelでserviceクラスを作る手順!ロジックを切り分けてコード効率化:https://www.kamome-susume.com/laravel-service/]]

-「Request→Controller→Service→Model or Repository」のようにビジネスロジックの処理箇所としてServiceクラスを作成

-データの永続化に関わらないビジネスロジックを書く
--json整形のような取得したデータを加工してControllerに値を返す処理など

**config [#qad35f0e]
***database.php [#bc73928b]

**database [#u7a81340]
-[[Laravel8で完成されたModelFactoryの使い方:https://qiita.com/ucan-lab/items/788d1a603f2b53ebb999]]

***factories [#ud95feb9]
-[[Laravel 8.x データベーステスト:https://readouble.com/laravel/8.x/ja/database-testing.html]]

***migrations [#pa37ff55]
-[[Laravel 8.x マイグレーション:https://readouble.com/laravel/8.x/ja/migrations.html]]

**routes [#acec6780]
***api.php [#t631c955]
-[[【Laravel】APIのルーティングを設定するapi.phpの概要を解説します:https://www.tairaengineer-note.com/laravel-api-php/]]

***web.php [#sa206fba]

**tests [#edc50351]
-[[PHPUnitでLaravelのAPIをユニットテストする:https://www.twilio.com/blog/unit-testing-laravel-api-phpunit-jp]]
-[[【Laravel】APIテストを自動化してみよう:https://e-seventh.com/laravel-how-to-test-web-api/]]
-[[Laravelで初めてのテストとTDDをサクッとやってみる【初心者向け】:https://tech.012grp.co.jp/entry/tdd_introduction]]
-[[Laravel で API コントローラのテストをする (FeatureTest 編):https://qiita.com/grohiro/items/4efc6c569be26e36aef2]]

***Feature [#lb663f44]
-機能テスト

***Unit [#y65e21d0]
-ユニットテスト


*パッケージ [#z3f29d0d]
-[[Laravelで使えるおすすめパッケージ・ライブラリまとめ:https://qiita.com/ChiseiYamaguchi/items/7277aad6be309d0f7ae7]]

**開発環境 [#i24bb566]
***Laravel Valet [#v0021c30]
-[[Laravel Valet 3 Released With Multi-Version PHP Support:https://laravel-news.com/laravel-valet-3-0-0]]
-[[macOS向けのLaravel開発環境「Laravel Valet 3」がリリース。サイトごとにPHPバージョンが指定可能に:https://codezine.jp/article/detail/15786]]

**認証 [#kf6fb4dd]
-[[Laravelの認証系パッケージを整理する:https://zenn.dev/localdisk/articles/a338175e913410]]

***Laravel Breeze [#ua864fa7]
-Laravelを使ったユーザ登録、ログイン、パスワードの再設定などの認証に関わる基本的な機能を提供

***Laravel Fortify [#w45f9007]

***Laravel Sanctum [#c917470a]
-モバイルアプリや SPA 作成時に使用されるライブラリ
-トークン認証(主にモバイルアプリ用)、クッキー認証(主に SPA 用)ができる

***Laravel Passport [#h8bed9ce]
-[[Laravel PassportのAPI認証を理解する:https://reffect.co.jp/laravel/laravel-passport-understand]]
-[[Laravel PassportでOAuthサーバーを実装、クライアントアプリでAPIアクセスを確認:https://blog.hrendoh.com/implement-oauth-server-using-laravel-passport/]]
-[[laravel passport導入:https://zenn.dev/syy/scraps/480a29a3a30607]]
-[[Laravel Passportをやってみるメモ:https://satofaction.net/blog/20210111/]]

-[[Laravel Passportのoauth系ルーティングはどこで定義されているのか:https://qiita.com/miriwo/items/5f154fd21578c4c69684]]

***Laravel Jetstream [#y87bb571]

**エラー検知 [#bd5c85a8]
***[[Flare:https://flareapp.io/]] [#lf9ea2ed]


**テスト [#ia8dd7ed]
***Laravel Dusk [#f6127667]
-[[「Laravel Dusk」を使ってブラウザテストを自動化する:https://liginc.co.jp/422942]]
-[[【Laravel】Duskで画面全体のスクリーンショットを取る:https://ojisan2355.com/laravel_tips-6/]]

-アプリケーションのブラウザテストを行うためのツール

***負荷テスト [#t595aaff]
-[[k6 Load Test:https://github.com/marketplace/actions/k6-load-test]]

*Git [#wd503898]
**.gitignore [#lc0af168]
***トップ [#a2cfc4c2]

***空フォルダを管理対象に [#hf418619]
-以下のフォルダに下記の内容の .gitignore を配置
--storage/framework/cache/data/
--storage/framework/app/cache
--storage/framework/sessions
--storage/framework/views

 *
 !.gitignore

-こうすることで、GitHub ActionsでPHPUnitテストを行った際にエラーが出ないようにできる

*開発 [#m99e313c]
**WebAPI [#g84dd029]
-[[Laravel PHPでRESTful APIを構築する方法:https://www.twilio.com/blog/building-and-consuming-a-restful-api-in-laravel-php-jp]]
-[[Laravel Passportを使用したPHPによるセキュアなAPIの構築:https://www.twilio.com/blog/build-secure-api-php-laravel-passport-jp]]
-[[TwilioとLaravelを使った二要素認証APIの作り方:https://cloudapi.kddi-web.com/magazine/two-factor-authentication/create-original-verify-api-laravel]]

-[[【初心者向け】Laravelで WebAPIを作成する。:https://tech-blog.rakus.co.jp/entry/20210928/laravel]]
-[[laravel でAPI作成:https://qiita.com/mdrq/items/a5a5d33e30ef1108c54e]]
-[[LaravelでCRUDのAPIをささっと作る:https://qiita.com/sayama0402/items/0188c740360479db3f98]]

-[[API設計書を自動で作成できるLaravel Scribeのツールレビュー:https://zenn.dev/naoki_oshiumi/articles/a49395f31e24ac]]

***GraphQL [#ze5ceee9]
-[[Laravel で GraphQL を使えるようにする! LightHouseハンズオン:https://don-bu-rakko.com/laravel-%E3%81%A7-graphql-%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%81-lighthouse%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3/]]
-[[Laravel・VueでGraphQLの環境を構築して使用してみる(Docker使用):https://maasaablog.com/development/laravel/1873/]]

*デバッグ [#kf096be5]
**tinker [#n41de097]
-[[Laravel コントローラをtinkerから実行する:https://qiita.com/ucan-lab/items/da3441b7a9e5c79f759d]]

*トラブルシューティング [#y6464b8d]
-[[MySQL・laravelで日付型に「0000-00-00」保存でエラー:https://tips.recatnap.info/laboratory/detail/id/482]]
--MySQLのSQLモードを見直した方が良い

***Target class [***Controller] does not exist. [#df946126]
-[[Laravel8を試したら即効でエラー「Target class [〇〇〇Controller] does not exist.」が表示された:https://qiita.com/tamakiiii/items/e71040173fa0a1fcad83]]
-[[[ laravel 8.x ] Target class [✖︎✖︎✖︎Controller] does not exist.の解決法:https://utubou-tech.com/laravel8-x_error2/]]

-[[Laravelを使ったルーティング方法:https://zenn.dev/mo_ri_regen/articles/laravel-routing]]
--大文字/小文字に注意!

***Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1 [#n121850d]
-[[Laravel環境をインポートしたときに”artisan package:discover handling the post-autoload-dump event returned with error code 1″エラーが出た時に確認したいこと:https://cpoint-lab.co.jp/article/201812/6788/]]

***Please provide a valid cache path. [#t3b6fb71]
-[[Laravelのデプロイ時にPlease provide a valid cache path.が出た時の対処法:https://eclair.blog/laravel-cache-path-error/]]
 $ mkdir -p storage/framework/cache/data/
 $ mkdir -p storage/framework/app/cache
 $ mkdir -p storage/framework/sessions
 $ mkdir -p storage/framework/views

***Unable to locate Mix file [#ob4faf55]
-[[[Laravel8]Unable to locate Mix file:エラーで苦戦。解決方法(css,js も):https://aoisora-coffee.com/laravel/unable-to-locate-mix-file]]
-[[Compilation error: ERROR in child compilations [laravel]:https://github.com/laravel-mix/laravel-mix/issues/3196]]
-[[Laravelで(1 WARNING in child compilations (Use 'stats.children: true' resp. '--stats-children' for more details) webpack compiled with 1 warning)というエラーが出た時:https://qiita.com/akkii1/items/db7444d69013969676ae]]

-npm run dev でエラー
  % npm run dev
 
 > dev
 > npm run development
 
 > development
 > mix
 
 ✖ Mix
   Compiled with some errors in 356.92ms
 
 ERROR in ./resources/css/app.css
 Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
 ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):
 TypeError: Cannot read properties of undefined (reading 'config')
     at getTailwindConfig (/Users/mr/Projects/sample_actions/node_modules/tailwindcss/lib/lib/setupTrackingContext.js:131:62)
     at /Users/mr/Projects/sample_actions/node_modules/tailwindcss/lib/lib/setupTrackingContext.js:22:92
     at /Users/mr/Projects/sample_actions/node_modules/tailwindcss/lib/processTailwindFeatures.js:38:11
     at plugins (/Users/mr/Projects/sample_actions/node_modules/tailwindcss/lib/index.js:30:63)
     at LazyResult.runOnRoot (/Users/mr/Projects/sample_actions/node_modules/postcss/lib/lazy-result.js:339:16)
     at LazyResult.runAsync (/Users/mr/Projects/sample_actions/node_modules/postcss/lib/lazy-result.js:393:26)
     at async Object.loader (/Users/mr/Projects/sample_actions/node_modules/postcss-loader/dist/index.js:97:14)
     at processResult (/Users/mr/Projects/sample_actions/node_modules/webpack/lib/NormalModule.js:753:19)
     at /Users/mr/Projects/sample_actions/node_modules/webpack/lib/NormalModule.js:855:5
     at /Users/mr/Projects/sample_actions/node_modules/loader-runner/lib/LoaderRunner.js:399:11
     at /Users/mr/Projects/sample_actions/node_modules/loader-runner/lib/LoaderRunner.js:251:18
     at context.callback (/Users/mr/Projects/sample_actions/node_modules/loader-runner/lib/LoaderRunner.js:124:13)
     at Object.loader (/Users/mr/Projects/sample_actions/node_modules/postcss-loader/dist/index.js:142:7)
 
 1 ERROR in child compilations (Use 'stats.children: true' resp. '--stats-children' for more details)
 webpack compiled with 2 errors

**file_put_contents ... [#s918b899]
***file_put_contents(/var/www/html/sample/storage/framework/sessions/... [#p5da2d10]
-[[laravel & vue.js エラー解消方法:https://prograshi.com/framework/laravel/error-file_put_contents/]]
 $ chmod 777 storage/framework/sessions/

***file_put_contents : failed to open stream: [#m32614e2]
-[[【Laravel】エラーの原因と対処法:file_put_contents : failed to open stream: No such file or directory:https://prograshi.com/framework/laravel/error-file_put_contents/]]

**npm [#md18a2ea]
-[[Laravel npm run devでエラーが発生した話:https://qiita.com/miriwo/items/2d96062d38031e4c7944]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS