0
0
テーマ、知りたいこと
いつもお世話になります。標題の通り
Laravelのセッション(session()系)について、xdebugの$_SESSIONのように値を簡単に確認できないのでしょうか
背景、状況
phpのスクラッチの脱却のためにLaravel sailに取り組み、勉強の中でセッションの値をxdebugのSESSIONから見れなくなっていたので困ってしまったことがきっかけとなりました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答8件
#1
すみません、誰か回答をお願いします。
みなさん、どのように対応され、満足されているのでしょうか?
#2
総合スコア4902
投稿2023/10/21 17:41
変数トレースの中の$requestの中にsessionがあって、ちょっと見にくいですが見ることはできますよ。
見やすくしたいなら処理の冒頭で共通変数の中にsessionまるっと入れちゃうとかするのもありかもですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#3
#2
Abeさん、アドバイス、ありがとうございます。
見つからなぬまま、どうしたら良いので、迷宮入りしてました。
見やすくしたいなら処理の冒頭で共通変数の中にsessionまるっと入れちゃうとかするのもありかもですね。
以下のコードを追記しましたがうまく、xdebugのところに表示されないです。
ここは起動時の初期設定のところをいうのを初めて知りました。(laravel始めたばかりなので)ペコリ
namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Register any application services. */ public function register(): void { // } /** * Bootstrap any application services. */ public function boot(): void { $allSessionData = session()->all();// 追加 view()->share('allSessionData', $allSessionData); // 追加 } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4

退会済みユーザー
総合スコア0
投稿2023/10/22 02:07
laravel-debugbarかclockwork
https://github.com/barryvdh/laravel-debugbar
https://github.com/itsgoingd/clockwork
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア3257
投稿2023/10/25 14:59
編集2023/10/25 15:00$requestのsessionだと辿りづらい、とかであればグローバル変数とかに入れておくしかないのかなとは思います。
ミドルウェアを追加して、APP_DEBUGが有効であればグローバル変数にいれちゃうとかはどうでしょうか。
php(app/Http/Middleware/DebugSession.php)
1<?php 2 3namespace App\Http\Middleware; 4 5use Closure; 6use Illuminate\Http\Request; 7 8class DebugSession 9{ 10 public function handle(Request $request, Closure $next) 11 { 12 if (config('app.debug')) { 13 global $DEBUG_SESSION; 14 $DEBUG_SESSION = session()->all(); 15 } 16 return $next($request); 17 } 18}
php(app/Http/Kernel.php)
1 protected $middlewareGroups = [ 2 'web' => [ 3 \App\Http\Middleware\EncryptCookies::class, 4 \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 5 \Illuminate\Session\Middleware\StartSession::class, 6 \App\Http\Middleware\DebugSession::class, // 追加 7 \Illuminate\View\Middleware\ShareErrorsFromSession::class, 8 \App\Http\Middleware\VerifyCsrfToken::class, 9 \Illuminate\Routing\Middleware\SubstituteBindings::class, 10 \App\Http\Middleware\Locale::class, 11 \App\Http\Middleware\Datadog::class, 12 ],
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア3257
投稿2023/11/08 15:49
middleware起動時点のセッション値を配列に代入していますから、提示したコードではコントローラ内での変更を辿ることは出来ないです。
セッション配列が入っている $arrtibutes はprotectedな変数なので、参照を得ることは出来ません。
セッションを管理しているクラス変数をいれておくくらいしか無いと思います。
php
1 public function handle(Request $request, Closure $next) 2 { 3 if (config('app.debug')) { 4 global $DEBUG_SESSION; 5 $DEBUG_SESSION = session()->driver(); 6 } 7 return $next($request); 8 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。