Seguramente más de una vez nos pareció demasiado engorroso tener que incluir en nuestros scripts todas las clases que queremos usar en el mismo, para solucionar esto contamos en PHP 5 con la función __autoload la cual es llamada automáticamente en caso de que se intente usar una clase que no ha sido definida aún.
Para hacer uso de esta y no tener que definirla en todos los scripts que tenemos podemos crear una archivo que se llame auto_load.php e incluirlo en todos los script que hacen uso de clases o bien si contamos con un archivo config.php o algo así que se use en todos lados, la podemos definir ahí para que de esta forma sea global a toda la aplicación.
1
2
3
| function __autoload($class_name) {
require_once $class_name . '.php';
} |
Al ser llamada la función en el parámetro $class_name viene el nombre de la clase por ende si queremos incluir la clase Empleado el require_once incluirá a Empleado.php.
Un practica buena es definir el require_once con un path absoluto de esta forma podemos hacer uso de la función en cualquier parte de sitio sin preocuparnos por si la clase será cargada o no para esto redefinimos la función como sigue:
1
2
3
| function __autoload($class_name) {
require_once $_SERVER[‘DOCUMENT_ROOT’].’/directorio_de_clases/’.$class_name . '.php';
} |
De esta forma al cuando queremos invocar a la clase Empleado si tenemos incluido el auto_load.php solo instanciamos a la misma y listo podemos usarla sin problemas.
1
2
| require_once (‘auto_load.php’);
$emp = new Empleado('Juan Perez', 25, 40.32, 80); |
Comentarios desactivados
La librería ADOdb nos da la posibilidad de recuperar la fecha que tenemos guardada en nuestra DB en el formato DD-MM-YYYY, para ellos usaremos el método
UserDate(campo_fecha, formato)
Ejemplo:
1
2
3
|
//objeto conexión creado a partir de la clase ADOdb
$noticia = $conexion->Execute(“SELECT fecha FROM noticias”); |
Unos de los fields tiene el nombre fecha el cual esta en el formato YYYY-MM-DD, a continuación imprimimos la fecha en el formato DD-MM-YYYY
1
2
3
|
//imprimo la fecha en formato m/d/Y
echo $noticia->UserDate($noticia->fields['fecha'],'d/m/Y')); |
Comentarios desactivados
La declaración de clases en PHP es muy simple y similar a otros lenguajes, por ejemplo declararemos la clase empleado, con sus atributos y algunos métodos:
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
42
43
| /**
* Representa la entidad Empleado
*
* @version 1.0
* @copyright 2009
*/
class Empleado {
private $nombre;
private $edad;
private $precio_por_hora;
private $cantidad_horas;
/**
* Constructor de la clase, inicia los atributos.
*/
public function __construct($str_nombre, $str_edad, $str_precio_por_hora, $str_cantidad_horas)
{
$this->nombre = $str_nombre;
$this->edad = $str_edad;
$this->precio_por_hora = $str_precio_por_hora;
$this->cantidad_horas = $str_cantidad_horas;
}
/**
* Setea el nombre
*/
public function setNombre($str_nombre)
{
$this->nombre = $str_nombre;
}
/**
* Retorna el nombre
*/
public function getNombre()
{
return $this->nombre;
}
/**
* Retorna el sueldo del empleado
*/
function obtenerSueldo()
{
return $this->precio_por_hora * $this->precio_por_hora;
}
} |
Ahora para hacer uso de la clase guardamos el archivo con el nombre Empleado.php y luego incluimos el archivo a nuestro script.
Una vez listo esto creamos una instancia de la misma y hacemos uso de esta como lo muestra el siguiente ejemplo:
1
2
3
4
5
6
7
| //incluyo el archivo
require_once('Empleado.php');
$emp = new Empleado('Juan Perez', 25, 40.32, 80);
// imprimo el nombre
echo $emp->getNombre() . '<br />';
// imprimo el sueldo
echo $emp->obtenerSueldo(); |
Comentarios desactivados