PHP Hablar de Programacin Orientada a Objetos (POO) es hablar de clases (y otras funcionalidades) que nos permite escribir cdigo flexible y sobre todo reutilizable. Para muchos resulta dificultoso y tedioso pero una !ez construida nuestra clase podemos hacer uso de ella para cualquier otro desarrollo. "os lenguajes actuales implementan el desarrollo con POO y PHP no se podia quedar atr#s (aunque en lo personal no s$ si implementa todas las caracteristicas de la POO). %n esta oportunidad !amos a !er como usar POO en los ejemplos anteriores de &'&()PHP en este caso *onsulta de datos. %mpezemos+ Tabla Empleado en MySQL CREATE TABLE empleados ( idempleado int NOT NULL auto_increment, nombres varchar(!" NOT NULL, departamento varchar(#$"NOT NULL, sueldo double, %E& id(idempleado" "T&'E()*+,A)- +N,ERT +NTO empleados .ALUE, (/, 01uan 'ere20, 0+n3ormatica0,4$$5$$"- +N,ERT +NTO empleados .ALUE, (!, 0Laura )orales0, 0Contabilidad0,44$5$$"- +N,ERT +NTO empleados .ALUE, (, 0Luis 6utierre20, 0Administracion0,74$5$$"- +N,ERT +NTO empleados .ALUE, (#, 0'edro ,olar0, 0+n3ormatica0,4$$5$$"- +N,ERT +NTO empleados .ALUE, (4, 08avid .ilche20, 0Contabilidad0,44$5$$"- Creando Clases y Mtodos *reamos una *lase para la conexin con la ,ase de -atos el m$todo conectar() se encargar# de !erificar y realizar la conexin con la base de datos. & este archi!o lo llamamos DBManager.php . 1 2 9:php ;;esta clase nos permitira conectarnos a la base de datos class 8B)ana<er= var >conect- ;;)?todo constructor 3unction 8B)ana<er("= @ ;;)?todo Aue se encar<arB de la veri3icar * reali2ar ;;la coneCiDn 3unction conectar(" = i3(E(>con(Fm*sAl_connect(GlocalhostG,GrootG,GG"""= echoGError al conectar a la base de datosG- eCit("- @ i3 (EFm*sAl_select_db(GribosomaticG,>con"" = echo GError al seleccionar la base de datosG- eCit("- @ >thisHIconect(>con- return true- @ @ :I *reamos una *lase para los procesos relacionados con el Empleado como por ejemplo+ *onsultar sus datos. Para ello el m$todo consultar()realizar# este proceso . Pre!iamente hacemos referencia al archi!o BDManager.php para realizar la conexin. & este archi!o de la *lase %mpleado lo llamaremos cEmpleado.php . 9:php include_once(G8B)ana<er5phpG"- ;;implementamos la clase empleado class cEmpleado= ;;constructor 3unction cEmpleado("= @ ;; consulta los empledos de la B8 3unction consultar("= ;;creamos el obJeto >con a partir de la clase 8B)ana<er >con ( neK 8B)ana<er- ;;usamos el metodo conectar para reali2ar la coneCion i3(>conHIconectar("((true"= >Auer* ( Gselect L 3rom empleados order b* nombresG- >result ( Fm*sAl_Auer*(>Auer*"- i3 (E>result" return 3alse- else return >result- @ @ @ 2 3 :I El resto es lo mismo, peroM5 &hora realizamos una consulta a los datos referenciamos al archi!o cEmpleado.php que contiene la *lase c%mpleado. *reamos el objeto .objempleados y usamos el m$todo consultar() para que la consulta de los datos y luego mediante un bucle listamos los datos. %ste archi!o lo llamamos consulta.php. 9:php include_once(GcEmpleado5phpG"- ;;,leep deJa inactivo el script por n se<undos ;;n es un parametro, en el eJemplo / se<undo ;;esto para poder apreciar el <i3 animado sleep(/"- ;;creamos el obJeto >obJempleados de la clase cEmpleado >obJempleados(neK cEmpleado- ;;la variable >lista consulta todos los empleados >consulta( >obJempleadosHIconsultar("- ;;muestra los datos consultados echo G9;pINombres H 8epartamento H ,ueldo9;pI NnG- Khile(>roK ( m*sAl_3etch_arra*(>consulta""= echo G9pIG5>roKO0nombres0P5G H G5>roKO0departamento0P5G H G5 >roKO0sueldo0P5G9;pI NnG- @ :I &hora las funciones 'a!a/cript entre ellas la que crea el objeto (0"Http1equest para trabajar con &'&(. %ste archi!o se llama ajax.js . 3unction obJetoAJaC("= var Cmlhttp(3alse- tr* = Cmlhttp ( neK ActiveQObJect(G)sCml!5Q)LRTT'G"- @ catch (e" = tr* = Cmlhttp ( neK ActiveQObJect(G)icroso3t5Q)LRTT'G"- @ catch (E" = Cmlhttp ( 3alse- @ @ i3 (ECmlhttp SS t*peo3 Q)LRttpReAuestE(0unde3ined0" = Cmlhttp ( neK Q)LRttpReAuest("- @ return Cmlhttp- @ 3unction )ostrarConsulta(datos"= divResultado ( document5<etElementB*+d(0resultado0"- divResultado5innerRT)L( 09im< src(Ganim5<i3GI0- aJaC(obJetoAJaC("- aJaC5open(G6ETG, datos"- aJaC5onread*statechan<e(3unction(" = i3 (aJaC5read*,tate((#" = divResultado5innerRT)L ( aJaC5responseTeCt @ 3 4 @ aJaC5send(null" @ 2inalmente el archi!o index.html que contendr# un formulario y un botn que al ser pulsado llamara a la funcin 'a!ascript 0ostrar*onsulta() que se enlaza al archi!o consulta.php y el resultado es mostrado dentro de la etiqueta 3di! id45resultado5637di!6. 9htmlI 9headI 9titleIConsulta Re<istro con A1AQ9;titleI 9EHH re3erenciamos al archivo aJaC5Js donde se encuentra nuestra 3uncion obJetoAJaCHHI 9script lan<ua<e(G1ava,criptG t*pe(GteCt;JavascriptG src(GaJaC5JsGI9;scriptI 9;headI 9bod*I 9EHH En GonsubmitG escribimos la 3unciDn 0)ostrarConsulta0 Aue creamos en Javascript, con su parametro Aue es el archivo Aue vamos a mostrar, en este caso 0consulta5php0HHI 93orm name(GconsultaG action(GG on,ubmit(G)ostrarConsulta(0consulta5php0"- return 3alseGI 9labelI 9input t*pe(GsubmitG value(GConsultarG ;I 9;labelI 9;3ormI 9div id(GresultadoGI9;divI 9;bod*I 9;htmlI *omo se podr# apreciar el uso de *lases en PHP hace que nuestro cdigo se reutilizable en prximos ejemplos !eremos como seguir implementando otros m$todos a la *lase %mpleado como por ejemplo 8nsertar &ctualizar y %liminar registros. Puedes !er el ejemplo en accin o descargar los archi!os. 4