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
El otro día me encontré con la necesidad de tener que hacer un upload masivo de fotos al servidor de mi aplicación web, pero el mayor problema que se me presenta en estas situaciones es que hoy en día las cámaras digitales por mas comunes que sean sacan fotos mayores a 2 o 3 megas, y si hay que subir 50 fotos el tiempo en que va a demorar subir todas esas fotos es mucho si no tenemos unas conexión veloz y si a eso le sumamos que hay que subir una por una o bien si tenemos varios inputs hay que seleccionar una por una, se pierde realmente mucho tiempo.
Bueno buscando un poco por la web encontré un applet en java que la verdad me sirvió mucho para esto, el mismo se llama PostLet (www.postlet.com), este básicamente permite redimensionar la imagen antes de subirla al servidor, osea el resize se hace del lado del cliente y no una ves que se subir al servidor. Si bien se pueden subir todo tipos de archivos y según el creador se puede subir hasta archivos de 2GB, en mi caso lo use específicamente para subir fotos, este te permite tambien configurar mediante parámetros varios aspectos hasta incluso el máximo de pixeles que puede tener la foto.
Web: www.postlet.com
Descargar
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