1

例外がスローされているが、Module.php でキャッチされないという問題があります。例外をスローするコードは、try/catch でラップされます。特に凝ったことは何もないので、ZF2 には癖や、ここで例外をキャッチできない理由があると思います。

コードは次のとおりです (必要に応じて簡略化しています)。

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        // Get service manager, etc.

        // Set up some environment stuff

        try {
            // exception is thrown
        }
        catch (\Exception $e) {
            echo $e->get_message();
            exit;
        }
    }
}

例外がキャッチされないのはなぜですか?

理想的な世界では、ここでこの例外をキャッチする方法があります。しかし、それが不可能な場合、または複雑すぎて努力する価値がない場合は、このデータを (ソースに関係なく) ページ読み込みプロセスのできるだけ早い段階で取得する代替プロセスを使用してください。

メタ

Module.php のコードが軽量であることはわかっています。ただし、実行するアクションに不可欠なデータが含まれているため、アクションを実行する直前にデータをフェッチする必要があります。このデータは最初の訪問後にキャッシュされるため、他のすべてのページの読み込みでこのオーバーヘッドが回避されます。

私もこれをグーグルで検索しましたが、どうやら他の誰もこれを経験したり、質問したり、文書化したりしていません。

4

1 に答える 1