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

5 thoughts on “Validación de correo electronico y dirección IP (POO)

  1. A modo de mejora comento 2 cositas 😛
    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 😛 y… otra cosa es que el link a code purity no funciona 😮
    Saludos Bline

  2. 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. 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):

Leave a Reply

Your email address will not be published. Required fields are marked *

Proudly powered by WordPress | Theme: Wanderz Blog by Crimson Themes.