Re: Pattern etc to reduce duplicated validation?
| From: | Peter Ford | Date: | Thu, 27 Mar 2008 11:14:54 +0000 |
| Subject: | Re: Pattern etc to reduce duplicated validation? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-272156@lists.php.net to get a copy of this message | ||
David Lidstone wrote:
Hi All
I seem to be writing a lot of this:
//======== SCRIPT =========
$var = $_POST['var'];
// validate $var
$foo = new foo;
$foo->setBar($var);
//======== CLASS ==========
class foo {
public function setBar($var) {
// validate $var
}
}
As you can see, the "issue" is that I am validating the input in my script, and then again in my class... surely unwanted duplication!? Obviously (I think!), I need to be validating at the level of my class, so does anyone have a pattern / strategy to help ease the pain... a way of using the validation in the class to validate the script and return meaningful errors to the user?? Throwing errors and forcing the script to catch them perhaps?
I have tried a few validation classes etc and they have not really addressed this issue. Perhaps I should just live with it and get on with it! :)
Many thanks for your help, David
Well, you could try looking at using exceptions:
//==== CLASS ====
class foo
{
public function setBar($var)
{
if ( var_is_NOT_a_valid_value_for_bar )
{
throw new Exception('Invalid value for bar in class foo');
}
}
}
// ===== Script =====
$var = $_POST['var'];
$foo = new foo();
try
{
$foo->setBar($var);} catch (Exception $e) {
echo 'An error occurred: ',$e->getMessage(),"\n";} Take a look at http://www.php.net/manual/en/language.exceptions.php -- Peter Ford phone: 01580 893333 Developer fax: 01580 893399 Justcroft International Ltd., Staplehurst, Kent