2

そのため、PHP アプリケーションを開発する際に、多くの JSON を使用しています。また、関数は json 文字列またはその内容を知るのが非常に難しいものを返します。特に変更が多い場合は、ドキュメントを最新の状態に保つのに時間がかかります。

次のようなものを実装することをお勧めします。

を使用する代わりに、次のようなreturn $x関数を実装します。_return

function _return($obj)
{
    var_dump(debug_backtrace());
    return $obj;
}

それだけではなく、スタックトレースで関数の名前を調べ、このコードで $obj タイプを適切なファイルに保存し、それらを使用して自動的に更新されたドキュメントを作成することができます!

これでいいのだろうか。戻るたびに debug_backtrace() を実行するのに時間がかかるのではないでしょうか?

私はそれを次のように使用します:

class T
{
    public function __constructor()
    {
    }

    public function first()
    {
        return $this->second();
    }

    public function second()
    {
        $array = array('david' => 'value', 'test' => 'oj');
        return _return($array);
    }

}

function _return($obj)
{
    var_dump(debug_backtrace());
    return $obj;
}

$t = new T();
$t->first();
4

1 に答える 1

0

あなたのコードにはいくつかの欠点があります。

まず、バックトレースが巨大になる可能性があります - これが function がある理由ですdebug_print_backtrace()。メモリ制限に近づいている場合は、バックトレースを変数にプッシュしてからダンプすることで、スクリプトをキャンセルできます。

_return2 番目: 備考: 「最初の」方法を使用しないのはなぜですか?

3 番目: var_dump を使用すると、最近の JavaScript ライブラリによって使用および解析される可能性のある JSON 出力が破棄されます。

4 番目: 特定の URL へのリクエストを受け取ったときにどの関数が呼び出されるかわからない場合、ドキュメントが原因ではなく、URL から実行される関数への非自明なマッピングのシステムが必要以上に不足していることが原因です。

5 番目: デバッグ ロギング。

6 番目: 出力のサニタイズ (入力の検証に相当するものです)。

7番目: JSON スキーマの検証のようなものがあります。たとえば、 http://davidwalsh.name/json-validationを見てください。これは、データ構造を定義することによって逆に機能しますが、現実と目標結果を比較して違いを検出できれば、少なくともどこを更新すればよいかがわかります。

于 2013-01-15T21:46:07.747 に答える