質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • PHP

    24035questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Laravel 5

    2533questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • Laravel

    964questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • XAMPP

    620questions

    XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

  • デバッグ

    120questions

    デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

php artisan optimizeを実行した際のエラー

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 247

toll_tree

score 11

laravelを学習していたのですが、xdebugを使用し、vscodeにてデバッグを行っていたら、「 throw new DecryptException('The payload is invalid.');」とエラーが発生した為、こちらの記事を参考に、「App\Http\Middleware\EncryptCookies.php」内に、

protected $except = [
    'XDEBUG_SESSION'
];


を追加し、xamppのshellに、「php artisan optimize」を実行しました。
しかし、下記のようなエラーが発生してしまいました。

php artisan optimize
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!

LogicException  : Unable to prepare route [api/user] for serialization. Uses Closure.
\htdocs\laravelapp\vendor\laravel\framework\src\Illuminate\Routing\Route.php:917
913|      */
914|     public function prepareForSerialization()
915|     {
916|         if ($this->action['uses'] instanceof Closure) {

917|             throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
918|         }
919|
920|         $this->compileRoute();
921|

Exception trace:
1   Illuminate\Routing\Route::prepareForSerialization()
\htdocs\laravelapp\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
2   Illuminate\Foundation\Console\RouteCacheCommand::handle()
\htdocs\laravelapp\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:32

とりあえず、エラーは発生したものの、記事内で紹介されていたコマンドをすべて打ち込み、デバッグを行ってみたのですが、「 throw new DecryptException('The payload is invalid.');」こちらのエラーは改善しませんでした。
その為、やはり上記画像のエラーが原因と考えているのですが、こちらのエラーはどのようなエラーなのでしょうか?
どなたか、ご助言頂けましたら幸いです。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2019/05/16 13:07

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 3

+1

あら・・・回答直前に画像が削除された。
画像のエラーでは、こちらの話のように見えました。

仕様で、できないようなので

クロージャベースのルートはキャッシュできません。ルートキャッシングを使用するには、クロージャルートをコントローラクラスに変換する必要があります。

対応?か、わかりませんが。

あなたはルートキャッシュをクリアするためにコマンドを使用することができます:route:clear
php artisan route:clear

とすると回避できるかもしれません。

あとは、もとのエラーメッセージにもあった、-v オプションつけて実行すると、詳細のメッセージ出ると思うので、解決の糸口になるのではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/15 12:38

    ご回答ありがとうございます。
    画像に絶対パスなどの情報が含まれているのは、危険だとのことでしたので、それらの情報は削除し、文字のみ張り付けさせて頂きました。
    取り敢えず、教えて頂きました「php artisan route:clear」こちらのコマンドを実行し、もう一度試してみたいと思います。

    キャンセル

0

そもそも、

php artisan optimize

はリリース時にリソースや読み込むファイル群をキャッシュするための機能(デプロイ時の最適化コマンド)なので、デバッグ時には不要なのでは?
と思う。

というか、OpCacheあるからそのうちいらなくなるって話だったかと

参照先Qiitaにも明確な根拠はなく(攻撃的な意味ではない)、儀式的に書いてあるだけかもしれないので
optimizeコマンドの用途を考えると必ずしも実行しなくてもよさそう、と思える

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-2

こちらのエラーはどのようなエラーなのでしょうか?

エラーメッセージの読み方と対処, 検索や質問の原則

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/15 11:19

    (デバッガーの画面の)エラーだけ貼られても結局フレームワークであるためこの内容だけで回答するのは不可能。
    フレームワークでなくても画像のコードだけで判断できるはずがない。
    どういうエラーか聞いているのだからエラーの読み方調べ方を提示するのが低評価につながるのは理解しがたい。

    キャンセル

  • 2019/05/15 11:23

    >この内容だけで回答するのは不可能。
    ソースコードをすべて張り付ける必要があるということでしょうか?

    キャンセル

  • 2019/05/15 11:24

    xdebugが悪いとは言わない。むしろ有用だと思う。
    けど別の回答で「Laravel デバッグで調べて」とアドバイスをしていて、実際に調べたらLaravelのデバッガの紹介記事が出てくる。
    「Laravel特有の問題」と思い込む質問者であればそちらを先に導入しようとすると思っていたがそうでなかったのが非常に残念。
    せっかくデバッガーなりプログラムが出してくれているエラー(きちんとどこで何が起きているか、トレースまでしてくれている)をきちんと読もうとしないのはデバッガーを導入した意味が全くない。

    キャンセル

  • 2019/05/15 11:27

    >この内容だけで回答するのは不可能。
    ソースコードをすべて張り付ける必要があるということでしょうか?

    「エラーに基づいてどう対応すれば現象を回避できるか(解消できるか)」まで知りたければ必要。
    「どういうエラーか?」という質問だけなら「エラーで調べて」としか言えません。だから「エラーを調べる際に参考になる記事」を提示しました。
    結局デバッガを使いこなせていないことと、エラーをきちんと読もうとしていないことと、自身が組んだプログラムがどこにどういう影響を及ぼすか(どういう処理が行われるか、何が呼び出されてどうなるか)を把握できていないこと と問題だらけなので、
    根本的なところ(というか基礎)を改善しないとおそらくずっとこのままです。

    キャンセル

  • 2019/05/15 11:40

    でしたら解決する為には、今回の画像のエラーだと、なんのソースファイルが必要なのでしょうか?

    キャンセル

  • 2019/05/15 11:47

    私が提示した記事、読んだのでしょうか。
    誰かに質問するときの大原則>3. エラーメッセージは原文通りに貼り付けて, 実行環境を詳しく書く
    より下記
    「エラーを解決するのに大事な要素に "再現性" がある. エラーに再現性があるとは, あなた以外の人も同じエラーを出せる, という意味だ. どのようにすればそのエラーを再現できるのかを他の人に的確に伝えることができれば, 解決方法を探すのを手伝ってくれる. 上述の minimal repro を作っておくと, 他の人も試しやすくなる.」

    > minimal repro を作っておくと, 他の人も試しやすくなる

    つまり「現象が再現する最小構成のプログラムコード」
    特にフレームワークだとファイル単体で動いているわけではなく、様々な要素が絡み合って結果を出しているので、「これ」と特定できる要素はどこにもありません。
    今質問に提示されたのは「xdebugを使ったときにデバッグでたエラーとトレースログ」のみ。
    それでは誰も再現できません。

    まあ私の「エラーで調べて」とか「Laravel デバッグで調べて」を丸無視のままでいくなら「そもそも問題解決を自分でできるようになる気がない」と踏んで、機械的な回答しかしなくなりますけど、それでも良ければ(要約:一生初心者でいてください。)

    キャンセル

  • 2019/05/15 11:50

    いえ、今回解決したい問題は、タイトルにもある通り、php artisan optimizeを実行した際にでたエラーの解決方法であり、デバッグ中に出たエラーではないです

    キャンセル

  • 2019/05/15 12:02 編集

    私のコメントの意図(というか書いたままですけど)全く伝わってないようですけど、
    では、回答を参考にエラー内容で調べてください。
    エラーで調べたことが何も書いてないので。

    あと
    > throw new DecryptException('The payload is invalid.');
    これ自体は単にException投げてるだけでそれそのものがエラーではないというのはPHPわかっていたら理解できるはずですが、なぜ何度も質問本文に「~~~というエラーが」と書かれているのか理解に苦しみます。
    デバッグするのであればそのExceptionが吐き出している情報を確認するべきですが、そちらに目がいっていないようです。
    optimize実行時のエラーも同様。場所も何のExceptionかも、トレースログも出してくれているのですから、それを追えばよいだけでは。
    デバッガ入れただけで問題が解決するわけではないです。あくまでデバッグがしやすくなるだけで、出力された情報をもとに自身で探っていく作業は必ず必要です。
    回答者側から見ると丸投げの内容です。

    ##
    それよりも画像内にコンピュータ内の絶対パスやコンピュータ名があるみたいですけど、これって出して大丈夫なものだと思いますか?プログラミング上のエラーとどちらが致命的か調べて比べてみてください。

    キャンセル

  • 2019/05/15 12:08

    絶対パスや、コンピュータ名を出すとどのようなデメリットがあるのですか?

    キャンセル

  • 2019/05/15 12:09

    (2回目)どちらが致命的か調べて比べてみてください。

    キャンセル

  • 2019/05/15 12:12

    まあ全世界に発信しても何も問題ないと判断されたから出してるんでしょうけど。中には質問削除して立て直す人もいるので、そこは個人個人の判断でいいということにしておきましょう。
    (ここに何も気が回らない人にセキュアなプログラミングができるとは思えませんし、私は仕事を渡そうとは思いませんが)

    キャンセル

  • 2019/05/15 12:13

    どのようなデメリットがあるか分からないので、調べようがないです。
    調べろというのならキーワードを教えてください。

    キャンセル

  • 2019/05/15 12:14

    まだ、勉強段階なもので。仕事はしていません。

    キャンセル

  • 2019/05/15 12:25

    仕事してるかどうかの話じゃないですよ。一般的なセキュリティ意識の範囲です。
    全世界に発信しているという意識があるかどうかです。
    (ちなみに編集履歴から辿れるので如何様にもなりますよ)

    Twitterでバカバイトが動画を発信するのも「どんな人が見ているかわからない」意識の欠如からです。例えプライベート発信でも誰かが見てしまえばそこからどこに流れるか投稿者には制御できないわけです。
    やってしまった子はみんな口を揃えて言いますよね。「こんな大事(おおごと)になるとは思わなかった」。
    私はクラッカーの技術も知識もないから分かりませんが、個人情報に近しいものがあるだけで悪いことに使える可能性はあります。ちょっとしたことから個人特定も可能かもしれません。

    まあ、あなたがどうなろうと(私に限らず)回答者、見ている人は知ったこっちゃないので、軽く忠告するだけですけど(忠告すらしないこともある)、家族や友人、仲間であれば全力で止めることもあります。

    ただ、エンジニアとして見たときに、バグや不具合だけならともかく、セキュリティガバガバで他人に迷惑をかけてしまうようなアプリケーションを公開されても困るのでその点を気に掛けているだけです。
    車を運転しているときに、初心者マーク外れてないからって事故を起こしていいわけではないですからね。
    どんな段階であれ必ず求められる意識や基準ってあるわけです。

    キャンセル

  • 2019/05/15 12:27

    編集履歴から、たどれるとのことですが、編集履歴を見直したのですが、画像は表示されていませんでした。
    画像をみることはできるんですか?

    キャンセル

  • 2019/05/15 12:33 編集

    編集履歴に乗っているのはマークダウンが反映されていない「単なる文字列」だからです。
    文字列ゆえに、文字列を消したからってそれにリンクした画像が物理的に削除されるような仕組みって非常に困難です。あくまでマークダウンのルールに従って変換しているだけなので、打ち間違えたかどうかの判断は(今のところは)自動的にはできないでしょう。
    teratailの画像の仕組みを知っていれば誰でも確認できます。私は知っているので今現在、見れています。
    つまり、「本当に見られたらまずいもの」であれば質問を削除するしかないのです。
    もちろん削除前にキーとなる部分を手元に控えられてしまえば、質問を削除したところで半永久的に参照可能となります。質問とリンクしているわけでもないので(つまり仕組みさえ知っていれば他人や別の質問回答にアップした画像を表示させることも可能)。

    ※既に回答がついているので運営に直接削除依頼するしかないですけど、そもそも「削除ポリシー」に該当するか微妙ですし、画像の削除依頼までうけてくれるかどうか

    キャンセル

  • 2019/05/16 13:07

    どこのサイトもそうだと思うんですが
    画像の投稿と、質問の投稿は全く別なんですよね。
    画像投稿はただのアップローダで、質問にはリンクを貼り付けているだけ。

    質問内容はTEXT型で保存されているだろうから、全てのリンクが切れたら自動削除とかもできないだろうし。

    そこまで考慮して設計するなら、先にquestion_idを発行して、画像投稿はquestionに紐付けてあらかじめ保存しておく他ない

    キャンセル

  • 2019/05/16 13:12

    コードもそうですけど画像も任意の数投稿できるのでそこまで管理しきれないでしょうしね。
    容量の問題もあるのでもしかしたら・・バッチとかでどこにも使用されてない画像をチェックして削除とかやってるかもしれませんけど。

    キャンセル

  • 2019/05/16 13:53

    取り敢えず、削除申請は出しておきました

    キャンセル

同じタグがついた質問を見る

  • PHP

    24035questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Laravel 5

    2533questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • Laravel

    964questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • XAMPP

    620questions

    XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

  • デバッグ

    120questions

    デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。