Las Clases son máximo exponente de la Programación Orientada a Objetos (POO). PHP no es un lenguaje orientad a objeto, pero implementa las características que permiten definir las clases.

Pero, ¿qué son las Clases y para que sirven?, empecemos por los segundo, sirven hacer el código más legible, y lo que es más importante, reutilizable. Escribir una Clase es sin duda más largo que escribir el código directamente, pero a la larga es más rentable por su portabilidad a otras aplicaciones y su mantenimiento.

Las Clases no son más que una serie de variables y funciones que describen y actúan sobre algo. Por ejemplo, vamos a crear la clase automóvil, la cual tendrá diversas variables, $color, $modelo, $marca, $potencia, $matricula y habrá una serie de funciones que actuarán sobre la clase automóvil como Precio(), Acelerar(), Frenar(), Girar()y Reparar().

Como ejemplo vamos a crear la clase mysql, que nos servirá para realizar consultas a las bases de datos MySQL.

<?php

class DB_mysql {

/* variables de conexión */

var $BaseDatos;

var $Servidor;

var $Usuario;

var $Clave;

/* identificador de conexión y consulta */

var $Conexion_ID = 0;

var $Consulta_ID = 0;

/* número de error y texto error */

var $Errno = 0;

var $Error = “”;

/* Método Constructor: Cada vez que creemos una variable

de esta clase, se ejecutará esta función */

function DB_mysql($bd = “”, $host = “localhost”, $user = “nobody”, $pass = “”) {

$this->BaseDatos = $bd;

$this->Servidor = $host;

$this->Usuario = $user;

$this->Clave = $pass;

}

/*Conexión a la base de datos*/

function conectar($bd, $host, $user, $pass){

if ($bd != “”) $this->BaseDatos = $bd;

if ($host != “”) $this->Servidor = $host;

if ($user != “”) $this->Usuario = $user;

if ($pass != “”) $this->Clave = $pass;

// Conectamos al servidor

$this->Conexion_ID = mysql_connect($this->Servidor, $this->Usuario, $this->Clave);

if (!$this->Conexion_ID) {

$this->Error = “Ha fallado la conexión.”;

return 0;

}

//seleccionamos la base de datos

if (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) {

$this->Error = “Imposible abrir “.$this->BaseDatos ;

return 0;

}

/* Si hemos tenido éxito conectando devuelve

el identificador de la conexión, sino devuelve 0 */

return $this->Conexion_ID;

}

/* Ejecuta un consulta */

function consulta($sql = “”){

if ($sql == “”) {

$this->Error = “No ha especificado una consulta SQL”;

return 0;

}

//ejecutamos la consulta

$this->Consulta_ID = @mysql_query($sql, $this->Conexion_ID);

if (!$this->Consulta_ID) {

$this->Errno = mysql_errno();

$this->Error = mysql_error();

}

/* Si hemos tenido éxito en la consulta devuelve

el identificador de la conexión, sino devuelve 0 */

return $this->Consulta_ID;

}

/* Devuelve el número de campos de una consulta */

function numcampos() {

return mysql_num_fields($this->Consulta_ID);

}

/* Devuelve el número de registros de una consulta */

function numregistros(){

return mysql_num_rows($this->Consulta_ID);

}

/* Devuelve el nombre de un campo de una consulta */

function nombrecampo($numcampo) {

return mysql_field_name($this->Consulta_ID, $numcampo);

}

/* Muestra los datos de una consulta */

function verconsulta() {

echo “<table border=1>\n”;

// mostramos los nombres de los campos

for ($i = 0; $i < $this->numcampos(); $i++){

echo “<td><b>”.$this->nombrecampo($i).”</b></td>\n”;

}

echo “</tr>\n”;

// mostrarmos los registros

while ($row = mysql_fetch_row($this->Consulta_ID)) {

echo “<tr> \n”;

for ($i = 0; $i < $this->numcampos(); $i++){

echo “<td>”.$row[$i].”</td>\n”;

}

echo “</tr>\n”;

}

}

} //fin de la Clse DB_mysql

?>

Como habreis observado, para crear una clase utilizamos la sentencia class, y además hemos creado una función con el mismo nombre que la clase, a esa función se le llama constructor y se ejecutará cada vez que definamos una variable de esa clase. No es obligatorio crear un constructor en una definición de clase.

Otra cosa importante en las clases es el operador ->, con el que indicamos una variable o método (parte derecha del operador) de una clase (parte izquierda del operador). Para hacer referencia a la clase que estamos creando dentro de su definición, debemos utilizar this.

Y ahora veamos un ejemplo de la clase que hemos creado, y supongamos que el código anterior lo hemos guardado en un fichero llamado clase_mysql.inc.php.

<body>

<html>

<?php

require (“clase_mysql.inc.php”);

$miconexion = new DB_mysql ;

$miconexion->conectar(“mydb”, “localhost”, “nobody”, “”);

$miconexion->consulta(“SELECT * FROM agenda”);

$miconexion->verconsulta();

?>

</body>

</html>

Memoria de burbuja La memoria de burbuja (Bubble memory) es un tipo de memoria para almacenamiento no volátil que utiliza una película de material magnético de pequeño e...
Que es el SEO externo ? Conseguir que otras webs de temática relacionada enlacen con tu web. Para ello es interesante realizar una búsqueda para aquellos términos que cons...
Facebook por fin saldría a la bolsa el 18 de mayo Facebook ya está listo para su estrenar su Oferta Pública Inicial (IPO) y empezar a cotizar en el NASDAQ, con fecha programada para el día 18 de mayo,...
Apple ya compró el dominio iPhone5.com La Organización Mundial para la Propiedad Intelectual (WIPO, por sus siglas en inglés) ha comunicado que ha interrumpido la actividad de iphone5.com, ...
El nuevo MacBook Air colapsa con Chrome Google reconoce que su navegador causa un fallo crítico del kernel a los nuevos dispositivos de Apple. Tras la reciente aparición de una reiterada q...
Sorprendente Estadística: Cuanto tiempo tardas en ver el telefono al levantarte La internet, el correo electronico , redes sociales, las apps, los juegos, los selfies, todas estas cosas se pueden gestionar con el móvil, ya forma p...
#Skype: Skype para empresas llegará en 2015 Microsoft ha anunciado que lanzará Skype para empresas durante la primera mitad del próximo año. Skype para empresas será muy similar al Skype que ...
Samsung Galaxy S4 Mini ya se puede comprar en Europa Lanzar versiones reducidas, tanto en tamaño como en precio, de móviles avanzados es una idea que Samsung inició el año pasado con su Samsung Galaxy S3...
Facebook Music gracias a Spotify Según se acaba de dar a conocer a través de la publicación especializada Forbes, Facebook lanzará próximamente un servicio musical desde la propia red...
Twitter dice ser una de las mejores formas de comunicar algo rápido al mundo El consejero delegado de Twitter, Jack Dorsey, dijo hoy que, nueve años después de su creación, la red social aún es una de las mejores formas de comu...
Las clases en PHP
Tagged on: