0

例外をユーザー メッセージとして使用するかどうかについては、多くの質問があります。はい派閥といいえ派閥の両方に固執しているようです。この質問をその一連の作業に追加したくありません。 これは、 stackexchangeのほんの一例です。

私はPHP OOPを初めて使用し、クラスでTRUE/FALSEを返す検証メソッドを持っていますが、falseの場合、失敗した検証メッセージをJavaScriptなしでユーザーに戻し、そのメッセージを.いくつかの CSS フォーマットを含むページ (上部などではありません)。

メソッドがユーザーメッセージ/テキストを生成すべきではないという聖書的な理由がある場合-私はそれで問題ありません-理由と、可能であれば適切な代替手段を理解したいだけです。

より重大なレベルのエラーを表示しないカスタム メッセージの例外クラスを拡張する可能性があります。そのため、ソリューションの一部である場合とそうでない場合がありますが、ユーザー出力の質問にはまだ対応していません。

また、これは 10 ポンドを 1 ポンドの袋に押し込もうとした場合にすぎないことも認めます。本質は次のとおりです。

class MyClass {
function validate_name($newname){
    try {    

     //some code to validate that test for a normal failure conddition

     throw new Exception('a user friendly message')

     }
     catch (Exception $e) { // Report the error!

        echo '<p class=0"error">An error occurred: ' . $e->getMessage() . '</p>';
            }//end catch

      }//end validate_name
    }//end Class

次に、ページでは、次のとおりです。

$obj =  new MyClass();

if (isset($_POST['item'])) {

    $obj->set_new_cat($_POST['item1'],$_POST['item2']);


}//end if isset post 




<form name="form1" method="post" action="">
    Name: <br/><input name="item1" type="text" />
    Description (optional): 
    <input name="item2" type="text" />
    <br/>
<?php ???how to display error messages here???>

     <button id="submit" type="submit" name="action" >Add Category</button>
</form>

以前の手順のバリエーションでは、ページで $errors 配列を使用し、配列からメッセージを取得しましたが、クラス内のメソッドでは、"echo $e ->getMessage" が思うように出力されません。

ここで単純なものが欠けているような気がしますが、私はこれに慣れていません...

4

1 に答える 1

0

例外ハンドラーを調整して、解決できないイベントで例外をスローするようにします。

class MyClass {
    function validate_name($newname){
        try {    
            //some code to validate that test for a normal failure conddition
            throw new Exception('a user friendly message');
        }
        catch (Exception $e) { // Report the error!
            throw new Exception('<p class="error">An error occurred: ' . $e->getMessage() . '</p>');
        }//end catch    
    }
}

次に、出力するとき。

$obj =  new MyClass();
$error = "";
if (isset($_POST['item'])) {
    try{
        // assuming this calls validate_name at some point
        $obj->set_new_cat($_POST['item1'],$_POST['item2']);
    } catch(Exception $e) {
        $error = $e->getMessage();
    }

}//end if isset post 

?>
<form name="form1" method="post" action="">
    Name: <br/><input name="item1" type="text" />
    Description (optional): 
    <input name="item2" type="text" />
    <br/>
    <?= $error ?>
    <button id="submit" type="submit" name="action" >Add Category</button>
</form>
于 2013-06-06T22:14:17.597 に答える