Mam mały dylemacik dotyczący OOP. Gdzie najlepiej umiescic walidacje danych dostarczonych przez uzytkownika? Ja widze 3 rozwiązania
1) Przy "setach"
<?php
class user
{
public function setLogin( $login )
{
if ( !UserValidate::login( $login ) )
{
throw new ValidateException( 'login' );
}
$this->setField( 'login', $login );
}
}
?>
2) Przy zapisywaniu danych
<?php
class user
{
public function save()
{
if ( !UserValidate::login( $this->login ) )
{
throw new ValidateException( 'login' );
}
if ( !UserValidate::pass( $this->pass ) )
{
throw new ValidateException( 'pass' );
}....
// zapisywanie
}
}
?>
3) W kontrolerze zanim wprowadzimy dane do obiektu
<?php
class UserController
{
public function save()
{
try
{
if ( !UserValidate::login( $_POST['login'] ) )
{
throw new ValidateException( 'login' );
}
if ( !UserValidate::pass( $_POST['pass'] ) )
{
throw new ValidateException( 'pass' );
}....
}catch(ValidateException $e)
{
}
$user = new user;
$user->setLogin( $_POST['login'] )
$user->setPass( $_POST['passs'] )
$user->save();
}
}
?>
Jak wy rozwiązaliscie ten problem? Z góry dzięki za odpowiedz.