環境
Laravel 9.5
php 8.1.8
Ubuntu 18.04
背景
Fat controllerになっていたので一部機能をまとめて切り出しました。
ローカルでは問題なかったのですが(mac + docker)、いざ本番環境のUbuntuに移したところ読み込まれなくなりました。
試したこと
1 : composer.json内に追記チャレンジ
composer.json
1 2 略 3 "autoload": { 4 "classmap":[ 5 "app/Traits" 6 ], 7 "psr-4": { 8 略
2 : dump-autoloadチャレンジ
bash
1$ composer dump-autoload -o 2 3> Illuminate\Foundation\ComposerScripts::postAutoloadDump 4> @php artisan package:discover --ansi 5Discovered Package: laravel/breeze 6Discovered Package: laravel/sail 7Discovered Package: laravel/sanctum 8Discovered Package: laravel/tinker 9Discovered Package: nesbot/carbon 10Discovered Package: nunomaduro/collision 11Discovered Package: spatie/laravel-ignition 12Package manifest generated successfully. 13Generated optimized autoload files containing 5874 classes
3 : autoload_classmap.phpに書かれているかの確認
vender/composer/autoload_classmap.php
1'App\\Traits\\Calculation' => $baseDir . '/app/Traits/Calculation.php',
4 : Traitファイルのnamespaceチェック
Laravelのプロジェクト/app/Traits/Calculation.php
1namespace App\Traits; 2 3trait Calculation 4{ 5 略 6}
5 : 読み込み先のControllerのチェック
Laravelのプロジェクト/app/Http/Controllers/CommodityController.php
1namespace App\Http\Controllers; 2 3 略 4 5use App\Traits\Calculation; 6 7 略 8 9class CommodityController extends Controller 10{ 11 use Calculation; 12 略 13}
エラー
php
1Symfony\ Component\ ErrorHandler\Error\ FatalError 2 3Trait "App\Traits\Calculation" not found
以前も自作Traitを本番のUbuntuで読み込まないことがありましたが、1と2で解決していたので今回よくわからず困っています。
原因の心当たりがありましたら教えていただけないでしょうか。
また、よろしければ皆さんがTraitを活用される際のディレクトリ構造や読み込ませ方の方法もお教えいただけると幸いです。
よろしくお願いします。
あなたの回答
tips
プレビュー