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); |
