Inicio

domingo, 9 de octubre de 2011

Clases en PHP

Lo que comenzó siendo un lenguaje de scripts, con el tiempo se ha convertido en un potente lenguaje de programación orientado a objetos POO. Este tipo de lenguajes utiliza los elementos clases y objetos como punto de partida de su estructura.
Para que podamos entender dichos conceptos pensemos en un programa que tenga que averiguar el dígito de seguridad de una cuenta corriente, formado por dos cifras.Lo más corriente es crear una función con un parámetro al que se le pase como argumento el número de la cuenta, y le devuelva los dígitos buscados.
Un desarrollo orientado a objetos pensaría en cada problema como una entidad única.Si pensamos que la cuenta corriente va asociado a una persona física o jurídica, podemos crear un procedimiento que identifique a esa persona y dentro de este proceso idear un método que calcule dichos dígitos.
Definición de clase
Una clase es un tipo de dato que contiene, en una misma estructura, variables y funciones.Es como una plantilla que nos permites construir objetos del mismo tipo. Sintáxis:

class blogg

{
function getTitulo()
   {

       return $this->titulo;
  }

}

Ejemplo de clase
Vamos a crear una clase para poder realizar una conexión a MySQL. Para comenzar vamos a crear una primera página (conexionclass.php) que contiene el módulo de clase, al que llamaremos desde otra página.
Código de la página conexionclass.php:

<?php
define ("SERVIDOR","localhost");
define ("USUARIO","root");
define ("PASS","");
define ("BASE","directorio");
class Conexion{
private $conn;
public function __construct()
    {
$this->conn=mysql_connect(SERVIDOR,USUARIO,PASS)
                    or die("Imposible conectar con ". SERVIDOR);
mysql_select_db(directorio,$this->conn) or die(directorio." no existe...");
    }
public function __destruct()
    {
mysql_close($this->conn);
    }
    public function consulta($sql)
    {
return mysql_query($sql,$this->conn);
    }
    public function elemento($id)
    {
$line=mysql_fetch_array($id);
return $line;
}
public function mensajeError()
    {
return mysql_error($this->conn);
}
public function numeroError(){
return mysql_errno($this->conn);
}
}
?>

Para comenzar declaramos las constantes con define para el servidor, usuario, password y base de datos.
A continuación creamos dos funciones la primera :

public function __construct()
    
Nos permite conectarnos a nuestra base de datos con los parámetros de la conexión. La segunda cierra la conexión
public function __destruct()


Creamos cuatro  más una para consulta, otra que nos devuelve la línea asociada al id que le pasemos, y dos más para el control de errores.

La segunda página invoca la clase y realiza la consulta sql:


<?php
include ("conexionclass.php");
$a=new Conexion();
$sql="select id,nombre,edad from example";
    $consu=$a->consulta($sql);
    $linea=$a->elemento($consu);
    while ($linea)
    {
          echo $linea[id]." ".$linea[nombre]." "."<br/>\n";
          $linea=$a->elemento($consu);
    }



?>


Para que el código funcione, necesitamos crear el objeto conexion esto se hace mediante la sentencia new Conexion(). En esa línea hemos creado por tanto una variable $a que contiene todas las funciones y propiedades de la clase conexion.Siempre que vayamos a llamar a una función de esa variable por ejemplo una consulta (recogida a su vez en $consu) tenemos que emplear el operador ->

$consu=$a->consulta($sql);
 $linea=$a->elemento($consu);