Está en la página 1de 11

PHP Orientado a Objetos for Beginners | Baluart.

NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

PORTADA Actualidad

VIDEOS

ETIQUETAS

CONTACTO Marketing Digital

Siguenos en: Diseo Grfico

Desarrollo Web

Tecnologa

Balu 23 Julio 2010 - 10:58pm 4 comentarios


4 2 Me gusta 63 Twittear 60

Buscando artculos de calidad para compartir con ustedes, encuentro un reciente y magnfico artculo (Object-Oriented PHP for Beginners) extrado del libro Pro PHP and jQuery, que a continuacin se los muestro, pero en nuestro idioma. He incluido los ejemplos online, para que podamos apreciarlos mejor. Y es que, para muchos programadores, la programacin orientada a objetos es un concepto aterrador, con una sintaxis muy complicada y otros temores. As pues, en este artculo aprenderemos los conceptos detrs de la Programacin Orientada a Objetos con PHP (PHP OOP), un estilo de programacin en el que las acciones relacionadas son agrupadas en clases para facilitar la creacin de un cdigo ms compacto y efectivo...

La programacin orientada a objetos es un estilo de programacin que nos permite (a los desarrolladores) agrupar tareas similares en clases. Esto ayudar a que nuestro cdigo mantenga el principio "No te repitas" (en ingls Don't Repeat Yourself o DRY, la wikipedia lo define) y as, mantenerlo

1 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

fcilmente. Uno de los mayores beneficios de la programacin DRY es que, si una pieza de informacin cambia en tu programa, usualmente slo se requerir un cambio para actualizar el cdigo. Uno de las ms grandes pesadillas para los desarrolladores es mantener el cdigo cuando los datos se declaran una y otra vez, lo que significa que cualquier cambio al programa se convierte en un juego, infinitamente ms frustrante, que el Dnde est Waldo?, donde hay que atrapar el contenido y funcionalidad duplicada. OOP es intimidante para muchos de los desarrolladores porque nos introduce a una nueva sintaxis y, a simple vista, parece ser ms complejo que el sencillo cdigo estructurado o en lnea. Sin embargo, una observacin ms avispada, nos mostrar que OOP es en realidad un enfoque, en ltima instancia, sencillo y simple, de programacin.

Antes de profundizar en la OOP, debemos tener una comprensin bsica de las diferencias entre Objetos y Clases. En esta seccin veremos como se construyen las clases, sus diferentes capacidades y algunos usos.

Fotos de Instant Jefferson y John Wardell

2 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

De buenas a primeras, hay una confusin en OOP: Desarrolladores experimentados empiezan a hablar sobre objetos y clases, y estos parecen ser trminos intercambiables. Esto no es as, sin embargo, la diferencia puede ser un poco complicada de entender a primera vista. Una clase, por ejemplo, es como el plano de una casa. Define la forma de la casa en un papel, y establece las conexiones entre las diferentes partes de la casa claramente. An cuando la casa todava no existe. Un objeto, entonces, es como una casa, construida de acuerdos al plano. Los datos que se almacenan en el objeto son como la madera, cables y concreto que componen la casa: Si la casa se hubiera montado sin un plano, slo sera una pila de cosas. Sin embargo, cuando todo se junta, se convierte en una organizada y til casa. Las clases son la estructura de los datos y acciones, y usan esta informacin para construir objetos. Ms de un objeto puede ser construido de la misma clase y al mismo tiempo; estos objetos son independientes los unos de los otros. Continuando con nuestra construccin analgica, esto es similar a un condominio que puede ser construido con el mismo plano: 150 casas distintas, que lucen igual, pero que tienes diferentes familias y decoraciones por dentro.

La sintaxis para crear una clase es muy sencilla: Declara una clase usando la palabra class, seguida del nombre de la clase y un set de llaves ({}): <?php class MyClass { // Los mtodos y propiedades de la clase van aqu } ?> Despus de crear la clase, una nueva clase puede ser instanciada y almacenada en una variable usando la palabra new:

3 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

<?php $obj = new MyClass; ?> Para ver el contenido de la clase, podemos usar la funcin var_dump(): <?php var_dump($obj); ?> Prueba este proceso, colocando el siguiente cdigo en un nuevo archivo llamado test.php (en tu localhost): <?php class MyClass { // Los mtodos y propiedades de la clase van aqu } $obj = new MyClass; var_dump($obj); ?> Carga la pgina en tu navegador en http://localhost/test.php y la siguiente lnea debe aparecerte: 1. object(MyClass)#1 (0) { } De esta sencilla manera, haz completado tu primer script con OOP.

Para agregar datos a la clase se usan las propiedades, o las variables de una clase especfica. stas, trabajan exactamente igual que una variable comn y corriente, excepto que ellas estn enlazadas al objeto y, por lo tanto, slo se puede acceder a ellas mediante l. Para aadir una propiedad a MyClass, aade el siguiente codigo en tu script:

4 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

<?php class MyClass { public $prop1 = "Soy la propiedad de una clase!"; } $obj = new MyClass; var_dump($obj); ?> La palabra public determina la visibilidad de la propiedad, aprenders un poco ms sobre esto en unos momentos. Luego, la propiedad es llamada usando la sintaxis estndar de una variable, y un valor le es asignado (Aunque, las propiedades de una clase no necesitan de un valor inicial). Para leer esta propiedad e imprimirla en el navegador, vamos a hacer referencia al objeto que la contiene: <?php echo $obj->prop1; ?> Debido a que pueden existir mltiples instancias de una clase, si el objeto no es referenciado individualmente, el script ser incapaz de determinar cual objeto leer. El uso de la flecha (->) es un operador OOP que accede al contenido de propiedades y mtodos de un objeto dado. Modifica el script en test.php para imprimir la propiedad en vez de volcar toda la clase, modificando el cdigo como se muestra: <?php class MyClass { public $prop1 = "Soy la propiedad de una clase!"; } $obj = new MyClass; echo $obj->prop1; // Imprime la propiedad

5 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

?> Recarga el navegador y ahora aparecer lo siguiente: Soy la propiedad de una clase!

Los mtodos son las funciones de una clase especfica. Es decir, que las acciones individuales que un objeto ser capaz de realizar, estn definidas, dentro de una clase, como mtodos. Por ejemplo, para crear mtodos que establecen y obtienen el valor de una propiedad $prop1, aade lo siguiente a tu cdigo: <?php class MyClass { public $prop1 = "Soy la propiedad de una clase!"; public function setProperty($newval) { $this->prop1 = $newval; } public function getProperty() { return $this->prop1 . "<br />"; } } $obj = new MyClass; echo $obj->prop1; ?> Nota: OOP permite a los objetos referenciarse a si mismos utilizando $this. Cuando trabajamos con un mtodo, usa $this de la misma manera que usaras el nombre del objeto fuera de la clase. Para usar estos mtodos, hay que llamarlos como a cualquier

6 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

funcin; pero primero, hay que referenciar al objeto que lo contiene. Imprime la propiedad de MyClass, cambia su valor e imprmelo otra vez, realizando las modificaciones que a continuacin se indican. <?php class MyClass { public $prop1 = "Soy la propiedad de una clase!"; public function setProperty($newval) { $this->prop1 = $newval; } public function getProperty() { return $this->prop1 . "<br />"; } } $obj = new MyClass; echo $obj->getProperty(); // Imprime el valor de la propiedad $obj->setProperty("Soy el nuevo valor de la propiedad!"); // Establece un valor nuevo echo $obj->getProperty(); // Imprime nuevamente para ver el cambio ?> Recarga el navegador, y vers lo siguiente: Soy la propiedad de una clase! Soy el nuevo valor de la propiedad!

7 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

<?php class MyClass { public $prop1 = "Soy la propiedad de una clase!"; public function setProperty($newval) { $this->prop1 = $newval; } public function getProperty() { return $this->prop1 . "<br />"; } } // Create two objects $obj = new MyClass; $obj2 = new MyClass; // Get the value of $prop1 from both objects echo $obj->getProperty(); echo $obj2->getProperty(); // Set new values for both objects $obj->setProperty("Soy el nuevo valor de la propiedad!"); $obj2->setProperty("Yo pertenezco a la segunda instancia!"); // Output both objects' $prop1 value echo $obj->getProperty(); echo $obj2->getProperty(); ?> Cuando recargues el navegador, aparecer lo que sigue:

8 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

Soy la propiedad de una clase! Soy la propiedad de una clase! Soy el nuevo valor de la propiedad! Yo pertenezco a la segunda instancia! Como puedes ver, OOP mantiene los objetos como entidades separadas, lo que facilita la separacin de diferentes piezas de cdigo en pequeos, pero relacionados, paquetes. De esta manera ya tenemos claro lo que es la programacin orientada a objetos, el concepto de Clases y Objetos, la distincin entre ellos, y las definiciones de propiedades y mtodos. Todo breve y claramente explicado. An faltan ms aspectos que comentar sobre PHP OOP, pero quedarn pendientes para un post posterior. Este artculo contina en las siguientes dos partes: PHP Orientado a Objetos for Beginners II PHP Orientado a Objetos for Beginners III Fuente: Este artculo es un extracto del libro Pro PHP and jQuery, en ingls: Object-Oriented PHP for Beginners.

Si te gust este artculo tambin te gustar...


Zend Framework desde cero 25/11/2011 - 1:46pm

Yioop, un buscador con PHP Open Source 29/08/2011 - 11:18am

Traits, lo nuevo de PHP 5.4 18/07/2011 - 2:14pm

9 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

10 de 11

10/11/2012 10:56 a.m.

PHP Orientado a Objetos for Beginners | Baluart.NET

http://www.baluart.net/articulo/php-orientado-a-objetos-for-beginners

TUTORIALES

ARTCULO RECOMENDADO

CATEGORAS Actualidad Cultura Desarrollo Web Diseo Grfico Entretenimiento General Marketing Tecnologa

RECOMENDAMOS Slo Photoshop ZonaMasters GossipSphere Almadark Weblog Jhonnyt Weblog Medicina Natural

Cmo cambiar el men de arranque de Windows 8 a Windows 7 con un clic


Muchos de los que ya tienen Windows 8 (Ver: Cmo actualizar a...

Cmo actualizar a Windows 8 de forma sencilla


El jueves fue el lanzamiento oficial de Windows 8 y para todos...

Cmo cambiar el men de arranque de Windows 8 a Windows 7 con un clic


Muchos de los que ya tienen Windows 8 (Ver: Cmo actualizar a Windows 8 de forma sencilla), estn disfrutando de todas las novedades que nos trae lo ms nuevo de Microsoft. Uno de los mayores cambios, el nuevo Men... ms

Cmo usar ems en vez de pixeles para la tipografa de nuestro diseo web
En aos pasados, los diseadores de pginas web utilizaban...

Weblog

Videos

Categoras

En Ingls

Privacy policy

Contacto

Copyright 2005 - 2012 - Baluart.NET. Todos los derechos compartidos. Creative Commons.

11 de 11

10/11/2012 10:56 a.m.

También podría gustarte