Validación de correo electronico y dirección IP (POO)

Mediante expresiones regulares podemos crear una funciones que nos valide correos electrónicos y direcciones IP con el formato adecuado, anteriormente vimos algo similar. Pero si nos gusta programar siempre orientado a objetos, lo cual nos ayuda a reutilizar nuestro código, además de otras ventajas ... ¿cómo podemos hacer? Veamos un ejemplo:

De este par de funciones:

function ip_is_valid($ip)
{
return (!preg_match( "/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/", $ip)) ? false : true;
}
function email_is_valid($email)
{
return (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $email)) ? false : true;
}

Pasando a programación orientado a objetos sería de esta forma:

<?php
class validation
{
public function __construct()
{
//todo
}

public function __destruct()
{
//todo
}

public function ip_is_valid($ip)
{
return (!preg_match( "/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/", $ip)) ? false : true;
}

public function email_is_valid($email)
{
return (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $email)) ? false : true;
}
}
?>

Ahora podemos llamar a nuestra clase en diferentes aplicaciones:

<?php
require('validacion.class.php');
$objeto=new validation;

if( $objeto->email_is_valid('billy_jean345@gmail.com') ) echo "good";
else echo "false";
?>

¿Interesante verdad? Por supuesto, que existen muchas formas de implementar la validación con clases, está es una forma. Espero les sirva este código.

Vía Code Purity

Compartir/Guardar artículo

Comentarios

  1. avatar Abel 2008-10-09 23:23:58 4 Si es muy buena práctica usar POO, pero para esta clase de tonterias lo mejor (100% mejor) es usar las funciones nativas de PHP (ahorramos tiempo de ejecución y memoria):

    <?php
    if( filter_var('roberto@example.com', FILTER_VALIDATE_EMAIL)){
    echo 'good';
    }

    else {
    echo 'false';
    }
    ?>
  2. avatar Pablo Morales 2008-10-09 18:01:08 3 Otro punto es la necesidad de instanciar la clase, el metodo podria ser estatico, y para validarlo.

    if( Validation::email_is_valid()){
    }

    Otra cosa, es que las clases tienen que usar el sistema de CamelCase, pero eso lo dice Zend ;)
  3. avatar jesusvld 2008-10-09 17:48:54 2 Gracias por la aclaración y esta corregido el link :)
  4. avatar Bline 2008-10-09 16:57:53 1 A modo de mejora comento 2 cositas :P
    Si se esta trabajando como objeto, dudo que a una clase externa a validation le importe mucho el rango de IP y email, de modo que yo pondria esos metodos como privados o protected, si no en el el paradigma de la orientacion a objetos tal y como la conocemos de lenguajes anteriores (c++ y demas) no habria valido para nada :P y... otra cosa es que el link a code purity no funciona :o

    Saludos Bline

Dejar un comentario


Navegación

Categorias

Archivos

Monitored by eXternalTest