¡Bienvenidos! Hoy vamos a ver un poco de php orientado a objetos, crearemos la conexión con una base de datos mysql, obtendremos datos, los mostraremos y poco más, simplemente queremos ayudar a la gente que está empezando a que les sea un poco más sencillo su aprendizaje y mostrarles una forma de trabajo que seguro que se puede mejorar, pero que es completamente válida.
Empezaremos creando las clases que es la forma con la que se trabaja en la programación orientada a objetos, veremos como utilizar el método constructor y nada más, empecemos.
Creamos nuestra clase conexión
Este archivo lo guardaremos siempre en el proyecto en el que estemos trabajando y lo podremos configurar siempre dependiendo de la base de datos, el usuario y el password que debamos usar en cada caso, así podremos reutilizar nuestra clase una y otra vez, veamos como es la clase conexión, creamos un archivo llamado conexion.php y dentro colocamos el siguiente código.
1
2
3
4
5
6
7
8
9
10
|
<?php class Conectar
{
public static function mi_conexion()
{
$conexion = mysql_connect("localhost","root","");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("comentarios");
return $conexion;
}
}
|
Creamos la clase a la que llamamos Conectar, dentro creamos una función llamada mi_conexion que la definimos como estática, que quiere decir, una función que no sea estática para poder utilizarla donde queramos primero deberemos crear una instancia de la misma, osea un objeto, veamos un pequeño ejemplo, creamos un archivo llamado comentarios.php y dentro colocamos el siguiente código.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php
include("conexion.php");
class Comentarios
{
//esto lo explicaremos a continuación
function __construct()
{
$fila = array();
}
public function comentario()
{
$sql="SELECT * FROM mensajes";
$res=mysql_query($sql,Conectar::mi_conexion());
while($reg=mysql_fetch_assoc($res))
{
$this->fila[]=$reg;
}
return $this->fila;
}
}
?>
|
Como vemos creamos una clase llamada Comentarios, y dentro una función que será pública pero no estática, esto es así porque deseamos utilizarla fuera de nuestra clase, pues a lo que vamos, lo primero en lo que debemos fijarnos es en la línea siguiente:
1
|
$res=mysql_query($sql,Conectar::mi_conexion());
|
Esto lo conocemos bien, o eso espero, pero lo importante es que simplemente haciendo un include del archivo conexion.phpya tenemos disponible nuestra función estática mi_conexion, ¿como la llamamos?, nombre de la clase::nombre de nuestra función estática, es así de sencillo, si la función no está definida como estática para poder utilizarla necesitamos primero crear un objeto de la misma y seguido llamar a la función que necesitemos utilizar, será más sencillo con un ejemplo, creamos un archivo llamado index.php y dentro iría este código.
1
2
3
4
5
|
<?php
require_once("comentarios.php");
$nuevo = new Comentarios();
$fila=$nuevo->comentario();
?>
|
Así debemos utilizar una función que no es estática, primero hacemos un require_once del archivo en el que está la clase que nos interesa, creamos una variable a la que le asignamos un nuevo objeto de nuestra clase, en este caso como la clase se llama Comentarios, creamos la variable $nuevo y creamos un nuevo objeto con la palabra clave new, $nuevo = new Comentarios();.
De esta forma tenemos disponibles todas las funciones de nuestra clase Comentarios en la variable $nuevo, ¿como utilizarlas?, como deseamos mostrar los resultados creamos otra variable a la que llamaremos $fila que será la que utilicemos para mostrar los resultados de nuestra consulta, a $fila le asignaremos la variable $nuevo que será donde tendremos disponible las funciones de nuestra clase Comentarios y a la variable $nuevo con el puntero -> le diremos el nombre de la función que deseamos utilizar en este caso, no hay más secreto.
Finalmente para mostrar los resultados en pantalla el archivo index.php quedaría de la siguiente forma.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<?php
require_once("comentarios.php");
$nuevo = new Comentarios();
$fila=$nuevo->comentario();
?>
<html>
<head>
<title>PHP ORIENTADO A OBJETOS</title>
</head>
<body>
<table>
<tr>
<th width="200">Nombre</th>
<th width="200">Email</th>
<th width="300">Asunto</th>
<th width="400">Mensaje</th>
</tr>
<?php
for($i=0;$i<sizeof($fila);$i++)
{
?>
<tr>
<td align="center">
<?= $fila[$i]["nombre"] ?>
</td>
<td>
<?= $fila[$i]["email"] ?>
</td>
<td>
<?= $fila[$i]["asunto"] ?>
</td>
<td>
<?= substr($fila[$i]["mensaje"],0, 100) ?>
</td>
</tr>
<?php
}
?>
</table>
</body>
</html>
|
Creamos un for para recorrer la variable $fila a través de la variable $i, hacemos que empiece en 0, y le decimos que mientras sea menor(sizeof) de la variable $i, que se incremente($i++) y después por cada campo que queramos mostrar hacemos:
1
|
<?php echo $fila[indice]["nombre del campo de nuestra base de datos"]
|
o en su defecto:
1
|
<?= $fila[índice]["nombre del campo de nuestra base de datos"]
|
que es lo mismo, índice será la variable $i que es la que recorre a través del for la variable $fila seguido del campo que deseemos mostrar.
Conclusión
La programación orientada a objetos soporta un alto grado de reutilización de códigos, que se incrementas por sus mecanismos de herencia, por esta y muchas mas rezones, la programación orientada a objetos es uno de lo métodos mas utilizados en el momento de programar en cualquier lenguaje.
¡RECUERDA! en UneWeb podemos guiarte y mostrarte los mecanismos y la funcionalidad de este tipo de programación, visita: http://www.uneweb.edu.ve/ ¡Éxitos!
No hay comentarios:
Publicar un comentario