Programación orientada a objetos en PHP5
La programación orientada a objetos es una forma de programación avanzada. PHP5 incorpora una nueva forma de POO, la cuál contribuye a mejorar su rendimiento y aumentar sus posibilidades.
Las aplicaciones se desarrollan creando clases, que están compuestas por funciones, variables o atributos. De las cuales se crean objetos, que obtienen las propiedades definidas en la clase.
Sintaxis de una clase en PHP
<? //definir la clase class nombre_clase{ //atributos public $propiedad1; public $propiedad2; // metodos de la clase public function metodo1($parametro){ instrucciones_metodo; } } ?>
Opcionalmente podremos usar las siguientes palabras clave delante de class
:
abstract
: clase que no puede ser crear una instancia como objetofinal
: la clase no puede ser extendida
Constructor de una clase
Podemos definir una serie de acciones que se realizan cuando se crea un objeto definiendo los métodos __construct
:
<? //definir la clase class nombre_clase{ //atributos public $propiedad1; public $propiedad2; //constructor de la clase public function __construct(){ } // metodos de la clase public function metodo1($parametro){ instrucciones_metodo; } } ?>
Podemos definir la visibilidad de un miembro de una clase usando las palabras clave:
public
: miembro visibleprotected
: visible solo en la clase actual y derivadasprivate
: visible solo en la clase actual
Herencia de clases
Una clase puede heredar los métodos y funciones de otra, formando una relación madre-hija. De esta manera la clase hija, hereda y puede sobrescribir atributos miembros de su clase madre. Podemos decir que la clase nombre_clase1
hereda de la clase nombre_clase
:
<? class nombre_clase1 extends nombre_clase { public function __construct ($parametro) { instrucciones_metodo1; } } ?> >
Objetos
Podemos definir un objeto como un “estudiante” representado por un nombre, dicho estudiante cuenta con varias características a las que llamaremos atributos y a las acciones métodos. Para obtener un objeto de una clase en PHP5 debemos crearlo y asignarle una variable.
<? $clase = new nombre_clase (); $clase-> metodo1(“parametro”); ?>
Para crear ese objeto $clase
de tipo nombre_clase
y acceder a esos métodos y atributos debemos haberlos definido creando la clase nombre_clase
.
Como pueden darse cuenta, asignamos el nuevo objeto de tipo nombre_clase
a la variable $clase
y accedemos a sus atributos: propiedad1
, propiedad2
y su método: metodo1
usando el operador de objeto ( ->
).
Puedes descargar el ejemplo para ejecutarlo.
Espero que este articulos les sea de gran utilidad. Sus comentarios seran tomados en cuenta en proximos articulos.
Yo tengo una pregunta. Trabajar con objetos en otros lenguajes es muy comodo porque haciando cosas como nombre_objeto. te aparece toda la lista de métodos que tiene ese objeto, propiedades, etc.¿Cómo puedo conseguir esto en PHP5? ¿Con eclipse, tal vez? Supongo que con dreamweaver nop.
Gracias.
rufus, te recomiendo Zend Studio, puedes bajartelo desde la pagina oficial de zend. El IDE es exelente, pruebalo.
Para php, no hay nada mejor que Delphi PHP. El ide es buenísimo, pero la VCL es mejor todavía!
http://www.codegear.com/delphiphp
Hasta luego
[…] post nos lleva al genial blog de Maestros del Web, cuyo post explica todo lo básico respecto al uso de clases, constructores y objetos en PHP5. […]
[…] http://www.maestrosdelweb.com/editorial/programacion-orientada-a-objetos-en-php5/ […]
[…] http://www.maestrosdelweb.com/editorial/programacion-orientada-a-objetos-en-php5 […]
hola a todos, recien comienzo y lo hago con PHP 5
¿me pueden recomendar algo básico, o con que programa comenzar?
desde ya gracias
Hola Annette, puedes utilizar Zend Studio y muy bueno. Es un excelente IDE. Puedes encontrarlo en http://www.zend.com/
java es una importante herramienta para programar por su gran facilidad para declarar variables y mostrar errores cuando lo cometan por eso les recomiendo este programa.java en eclipse
ahora todo es POO, php no tiene que quedarse atras
Pense que solo se hablaria de php, se que java es un claro ejemplo de lo que es poo, pero entonces tambien deberiamos incluir a los demas python, toda la plataforma .net , etc.
El mejor ide que te ayudara a aprender a programar es aquel que solo te coloree el codigo resaltando la sintaxis, lo automatizado si eres nuevo no es bueno.
Saludos
hola, estoy realizando mis primeras pruebas en php, mi consulta es, ¿se puede manejar el ingreso de datos y la visualizacion en tablas de estos datos en la misma pantalla? yo tengo un formlario.php y dentro de el tengo el codigo que lista el detalle para que se muestre al momento de presionar el boton “EJECUTAR CONSULTA”, pero al momento de cargar el archivo PHP de una vez se ejecuta esta consulta ¿que puedo hacer?
me gustaria saber comu hacer una aplicacion en php que me calcule el volumen de una piramide triangular
me gustaria saber sobre como manejar las vertices orientadas
[…] – ZonaPHP – Maestros del Web – PHP en castellano 0 Comments Read […]
solo les keria decir que esta pagina es muy limitada no sirve para nada
bueno quiero saber sobre programacion orientada a objetos segun el modelo mvc
[…] utiliza la Programación Orientada a Objetos (POO), permitiendo la reutilización de nuestro código. A continuación las características de algunos […]
recien me estoy iniciando en lo que es programacion orientada a objetos y me gustaria saber un poco mas de conceptos basicos, son muy importantes para mi. gracias!!!
Que pena lo que escribes para un tema tan importante como es la poo en php.
No es de escribir por escribir, tienes que ser mas ilustrativo.
quisiera saber que estrabajar con objeto
hola como vas , espero que super , hey mira la esta semana inicie un curso de programacion de software , y bueno aun no hemos empezado a ver es si los temas , hey decime que puedo empezar a leer de aqui para ir empapandome del tema , que me sugieres , muchas gracias y por lo que vi , esta pagina tiene mucha info bastante interesante , hey y decime si hay algo de animacion 3d y diseño grafico , te dejo pues cuidate mucho y que bueno contar con personas como voz que le gustan compartir conocimiento ,
hey para que sirve y que es zend studio
como se crea una clase
[…] programación orientada a pbjetos (POO) es muy útil, y mucho más cuando nuestra aplicación cuenta con gran cantidad de códigos, la POO […]
[…] No te olvides que PHP5 tiene capacidades orientadas a objetos. […]
en un objeto PHP5 los atributos son variables
puedo tener un atributo que es todo un objeto completo??
No sólo hay que mirar que se puedan declarar variables y que te diga los errores en tiempo de compilación a la hora de elegir un lenguaje para programar una aplicación web. Desde luego, en este ámbito Java es un juguete en comparación con PHP 5.
Hola esta bien, al parecer esta un poco enredado iniciarse con el POO, pero conociendo lo básico de PHP, puedes emprenderte a la POO.
Clase = es como un molde en la programacion para generar varios objetos.
Las variables = atributos en POO.
Metodos = funciones en PHP estructurada.
Objetos = Instancias de la clase, contiene los atributos y metodos que se crean en la clase.
Ejemplo rapidin jejee:
Ejemplo de una bloquera:
Existen moldes en las que se hacen los block, esto en programacion seria la clase. El molde nos genera las piezas con unas dimensiones de altura, anchura,textura, color etc… (atributos de la clase) y tambien tiene varias utilizaciones (funciones o metodos de la clase).
El mismo molde nos puede generar diferentes piezas, las cuales podemos cambiar sus atributos como por ejemplo color y textura. Block de color rojo, blanco etc (Aquí vendria siendo como la elaboracion de objetos.)
Esto es lo importante de declarar clases y crear moldes.
Podemos reutilizar el codigo, y hacer maravillas, soy nuevo en la POO, pero asi puedo demostrar una de las bases de la POO.
Saludos, y si estoy mal escucho las criticas.
[…] En los años de 1990, Netscape creo Livescript; las primeras versiones de este lenguaje fueron principalmente dedicadas a pequeños grupos de diseñadores Web que no necesitaban utilizar un compilador, o sin ninguna experiencia en la programación orientada a objetos. […]
claro que se puede con una variable estado o el nombre de la accion dependiendo de la accion se ejecuta el codigo de la pagina ejemplo if(isset($_POST[‘aceptar’])){…..
me gusto la explicacion de montellano.
Hols, supongo que ha sido un lapsus, pero Zend no es un IDE, sino un framework. Eclipse es un IDE, NetBeans otro. Por cierto, que he desarrollado un clon de Zend haciendo ingeniería inversa 😀