Poo en PHP
Poo en PHP
Poo en PHP
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
1. Introducción.
Este tipo de programación permite solventar algunos de los problemas que ha tenido el
desarrollo del software desde sus comienzos, como por ejemplo la falta de portabilidad y baja
reusabilidad del código, junto con la dificultad en la modificación y desarrollo del mismo.
Además es una técnica de codificación bastante mas intuitiva que el resto.
La programación orientada a objetos tiene tres propiedades básicas: Debe estar basado en
objetos, estar basado en clases y debe de ser capaz de mantener una herencia entre clases.
La mayoría de los lenguajes cumplen una o dos de estas propiedades pero pocos logran
cumplir las tres. En particular, la herencia.
Posteriormente veremos los conceptos objeto, clase y herencia junto con el resto de
conceptos asociadazos a la Poo.
Aprender esta técnica no es complicado, pero es una manera subjetiva de programar que
depende del desarrollador. Aunque podemos dar diferentes soluciones a un mismo problema,
no todas ellas son válidas. La dificultad no radica en aprender esta técnica, si no en ejecutarla
bien. Solo programando bien podemos aprovechar todas las ventajas que nos ofrece la
programación orientada a objetos.
2. Origen.
Se dieron cuenta de que las cualidades de las naves con las que estaban simulando podía
afectar unas a otras. Su idea fue la de agrupar diversos tipos de naves en diversas clases de
objetos. Los objetos se agrupan en clases y estas definen sus propios datos y operaciones.
Esta idea fue pulida posteriormente en Smalltak1, desarrollado en Simula2 en Xerox PARC3.
Fue diseñado para ser un sistema completamente dinámico en el cual los objetos se
podrían crear y modificar "en marcha" en lugar de tener un sistema basado en programas
estáticos.
1
Smalltalk: es un sistema informático que permite realizar tareas de computación mediante la interacción con un entorno de
objetos virtuales.
2
Simula: primer lenguaje de programación orientada a objetos (OOP).
3
Xerox PARC: una división de investigación de Xerox Corporation, con sede en Palo Alto.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Mas recientemente, nuevos lenguajes han apareciendo orientados a objetos pero con un
procedimiento mas metodológico, como Pitón y Ruby. Probablemente, después de Java los
lenguajes orientados a objetos mas importantes sean Visual Basic y C# diseñados para la
plataforma .NET4 de Microsoft.
4
.NET: proyecto de Microsoft para crear una nueva plataforma que permita un desarrollo de aplicaciones rápido. Microsoft
pretende desarrollar una estrategia que sume todos sus productos, desde el Sistema Operativo hasta sus herramientas de
mercado.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
4. Características de la Poo.
Herencia: las clases de objetos no están desligadas unas de otras, sino que se relacionan
entre sí, formando una jerarquía. Los objetos heredan las propiedades y el comportamiento de
todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el
encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados
de objetos preexistentes.
Esto suele hacerse agrupando los objetos en clases y las clases en árboles que reflejan un
comportamiento común. Cuando un objeto pertenece a más de una clase se llama herencia
múltiple, aunque esta característica no está soportada por algunos lenguajes como Java.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Modelo mental anómalo. Nuestra imagen del mundo se apoya en los seres, a los que
asignamos nombres sustantivos, mientras la programación clásica se basa en el
comportamiento, representado usualmente por verbos.
Es difícil modificar y extender los programas, pues suele haber datos compartidos por
varios subprogramas, que introducen interacciones ocultas entre ellos.
Es difícil mantener los programas. Casi todos los sistemas informáticos grandes tienen
errores ocultos, que no surgen a la luz hasta después de muchas horas de funcionamiento.
Es difícil reutilizar los programas. Es prácticamente imposible aprovechar en una
aplicación nueva las subrutinas que se diseñaron para otra.
Es compleja la coordinación y organización entre programadores para la creación de
aplicaciones de media y gran envergadura.
5
Apartado extraído de http://es.wikipedia.org/wiki/Orientado_a_objetos
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Ada: se usa en entornos en los que se necesita una gran seguridad y fiabilidad, como en
la defensa.
C++: está considerado como el lenguaje más potente, debido a que permite trabajar
tanto a alto como a bajo nivel, aunque obliga a hacer casi todo manualmente, al igual
que C, lo que hace difícil aprendizaje.
C#: combina el control a bajo nivel de lenguajes como C y la velocidad de programación
de lenguajes como Visual Basic.
VB.NET: es una versión de Visual Basic destinada al desarrollo de aplicaciones .NET.
Visual Basic apareció en el año 1991 como una evolución del QuickBasic que fabricaba
Microsoft.
Clarion: está orientado a la programación de aplicaciones de bases de datos. Es
compatible con una gran cantidad de ellas incluyendo todas las de formato SQL, ADO, y
XML, además puede generar salidas a HTML, XML, archivos de texto y PDF, entre
otros.
Delphi: entorno de desarrollo de software diseñado para programación general con
especial énfasis en la programación visual. En Delphi se utiliza como lenguaje una
versión moderna de Pascal llamada Object Pascal. Es producido por Borland. Delphi da
la posibilidad de producir archivos ejecutables para Windows, GNU/Linux y la plataforma
.NET.
Eiffel: fue creado en 1985 por Bertrand Meyer. Se centra en la construcción de software
robusto. Su lenguaje es parecido al de Pascal.
Java: fue desarrollado por James Gosling y sus compañeros de Sun Microsystems al
inicio de la década de 1990. A diferencia de los lenguajes de programación
convencionales, Java es compilado en un bytecode6 que es ejecutado por una máquina
virtual Java. El lenguaje toma mucha de su sintaxis de C y C++, pero tiene un modelo de
objetos mucho más simple y elimina herramientas como los punteros.
Lexico: es un lenguaje en español que busca facilitar el aprendizaje y la enseñanza de la
programación orientada a objetos. Permite experimentar con los algoritmos diseñados
sin tener que dedicar meses a aprender un lenguaje de programación.
Objective-C: Es el principal lenguaje de programación en Mac OS X. Mac OS X es el
sistema operativo de la familia de ordenadores Macintosh.
Ocaml: nace de la evolución del lenguaje CAML, abreviación de Categorical Abstract
Machine Language), al integrarsele la programación con objetos.
Oz: es un lenguaje multi-paradigma. Contiene la mayoría de los conceptos de los
principales paradigmas de programación, incluyendo programación lógica, funcional,
imperativa, orientada a objetos, con restricciones, distribuida y concurrente.
PHP: es un lenguaje de programación usado generalmente para la creación de
contenidos en webs. El nombre es el acrónimo recursivo de "PHP: Hypertext
Preprocessor", inicialmente PHP Tools, o, Personal Home Page Tools. Se trata de un
lenguaje interpretado.
6
Bytecode: código intermedio, más abstracto que el código máquina. Habitualmente se lo trata como a un fichero
binario que contiene un programa ejecutable similar a un objeto, que es un fichero binario que contiene código máquina
producido por el compilador.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
No todos estos lenguajes son igualmente eficaces. Existen lenguajes como OOCOBOL,
OOLISP, OOPROLOG y Object REXX que han sido desarrollados añadiendo a sus versiones
anteriores las características de la orientación a objetos, como ya pasara con C++.
La cosa mas difícil para aprender (y enseñar dicho sea de paso) en PHP orientado a objetos
es... lo básico. Pero una vez que obtengas el conocimiento, el resto vendrá mucho, mucho
mas fácil.
Pero no te desanimes! Tu has encontrado el tutorial mas fácil de entender sobre POO y
PHP.
Esto podría sonar como un reclamo jactancioso... lo se. Pero eso es lo que los nerd del
zeitgeist están diciendo.
Vídeos:
Como un bonus extra, he creado unos tutoriales de vídeo para ti. Ellos cubren el mismo
material como el articulo escrito, y son diseñados para reforzar el articulo.
Stefan Mischook
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
En este tutorial, seras guiado (paso a paso) a través del proceso de construir y trabajar con
objetos usando las capacidades de POO. Al mismo tiempo aprenderás:
• La diferencia entre construir una aplicación al estilo antiguo (por procedimiento) versus la
manera POO.
La gente entra en confusión cuando programa por falta del entendimiento de lo básico Con
esto en mente, vamos a pasar lentamente sobre los tema básicos de la POO mientras
creamos nuestros propios objetos en PHP.
Con este conocimiento, podrás ser capaz de explorar POO aun mas. Para este tutorial,
debes entender un poco lo básico de PHP: funciones, variables, condicionales y bucles o
repeticiones.
Para hacer las cosas mas fácil, el tutorial se encuentra dividido en 23 pasos:
Paso 1:
index.php class_lib.php
a POO trata acerca de crear código modular, de manera que nuestro código PHP orientado a
objetos sera contenido en archivos dedicados que serán insertados en nuestra pagina PHP
usando "includes" de PHP. En este caso todo nuestro código PHP OO estará en el archivo
PHP:
class_lib.php
OOP se revuelve alrededor de una estructura construida llamada 'clase' (class). Las clases
son los encargados de definir las plantillas que posteriormente son usadas para la definición
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
de objetos.
Paso 2:
Defines tus propias clases comenzando con la palabra clave "class" (clase) seguida del
nombre que le quiere dar a su nueva clase.
<?php
class person {
}
?>
Paso 3:
Las clases son los planos de los objetos PHP- mas sobre esto luego. Una de las grandes
diferencias entre las funciones y clases es que la clase contiene ambos datos (variables) y
funciones que forman un paquete llamado un "objeto". Cuando tu creas una variable dentro
de una clase, es llamada una "propiedad".
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
<?php
class person { var
name;
}
?>
Nota: Los datos/variables dentro de una clase (ej: var name ) son llamados "propiedades".
Paso 4:
De la misma manera que las variables obtienen un nombre diferente cuando son creadas
dentro de una clase (llamadas: propiedades) las funciones también referidas como (por los
nerds) con un nombre diferente cuando son creadas dentro de una clase – son llamadas
‘métodos’.
Los métodos de las clases son usados para manipular su propios datos/propiedades.
<?php
class person { var
$name;
function set_name($new_name) {
$this->name = $new_name;
}
function get_name() { return
$this->name;
}
}
?>
Nota: No olvides que en una clase, las variables son llamadas "propiedades".
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 5:
Otra convención (una convención para nombrar) es que los nombres para obtener
(get_name) y establecer (set_name) deberían ser similares a los nombres de las
propiedades (name).
<?php
class person { var
$name;
function set_name($new_name) {
$this->name = $new_name;
}
function get_name() { return
$this->name;
}
}
?>
Nota: Notese que los nombres que obtienen y establecen (set_name y get_name) hacen
juego con el nombre de propiedad asociada (name). De esta manera, si otros programadores
PHP quieren usar sus objetos, ellos sabrán que tienes un método/función llamado
"set_name()" (establecer nombre), el cual se relaciona con la propiedad/variable llamada
"name" (nombre).
Paso 6:
La variable '$this'
$this->name = $new_name.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
El $this es una variable incluida (construida automáticamente dentro de todos los objetos)
que apunta al objeto actual. O en otras palabras, $this es una variable especial de auto-
referencia. Puedes usar $this para accesar a las propiedades y llamar a otros métodos de la
clase actual donde te encuentras.
function get_name() {
return $this->name;
}
Nota: Esto podría ser un poco confuso para ti... esto es porque lo estas viendo por primera
vez, es una de aquellas capacidades del OO (construidas dentro del mismo PHP 5) que hace
las cosas automáticamente para nosotros. Por ahora, solo piense de $this como una palabra
clave OO. Cuando PHP se encuentra con esta variable, el motor PHP sabe que hacer.
... Muy pronto tu también sabrás que hacer con ella.
Paso 7:
Tu nunca deberías crear tus clases PHP directamente dentro de las paginas
principales de PHP– esto eliminaría el propósito o esencia del uso de PHP
orientado a objetos.
En vez de esto, la mejor practica es crear paginas de PHP separadas que solo contengan las
clases. De esta forma accesarias a sus objetos y clases PHP incluyéndolas en tu pagina PHP
principal con un "include" o "require".
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Nota: Nota como no hemos hecho nada con nuestra clase aun. Lo haremos en el siguiente
paso.
Paso 8:
Instancia/crea tu objeto
Las clases son planos/plantillas de objetos en PHP. Las clases no se hacen objetos hasta
que realizas algo llamado: instanciamiento.
Cuando tu instancias una clase, creas un instancia de ella (valga la redundancia), creando
así el objeto.
Si ejecutas el código PHP ahora, no podrás ver nada mostrado en la pagina. La razón para
esto, es que no le hemos dicho a PHP que haga algo con el objeto que acabamos de crear.
Paso 9:
Para crear un objeto fuera de una clase debe usarse la palabra clave "new".
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Desde el punto de vista del motor PHP, cada objeto es su propia entidad. Tiene sentido?
Por ejemplo:
Paso 10:
Ahora que hemos creado/instanciado nuestros dos objetos separados "persona", podemos
establecer sus propiedades usando los métodos (set_name y get_name) que nosotros
hemos creado.
Tenga en mente que aunque ambos de nuestros objetos personas ($stefan y $nick) son
basados en la misma clase "person", a lo que concierne a PHP, son objetos totalmente
diferentes.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 11:
Ahora nosotros usamos el método get_name para obtener acceso a los datos mantenidos en
nuestros objetos... son los mismos datos que nosotros insertamos en nuestros objetos
usando el método set_name.
Cuando accesamos a los métodos y propiedades de una clase, usamos el operador (->)
llamado Operador Flecha o técnicamente Operador de Objetos.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Nota: El operador flecha (->) no es el mismo operador usado con los arreglos asociativos:
(=>).
Felicitaciones. Ya llevas la mitad del camino a través del tutorial. Tiempo para tomarte un
receso y algo de te. OK de repente un poco de cerveza.
En breve, habrás:
Si no lo has hecho aun, ahora es el gran momento para escribir código y verlo en acción en
tus propias paginas PHP.
Paso 12:
No tienes que usar métodos para accesar a las propiedades de los objetos; Puedes
directamente llegar a ellos usando el operador flecha (-> ) y el nombre de la variable.
Por ejemplo: con la propiedad $name (en el objeto $stefan,) tu podrías obtener su valor de la
siguiente manera:
Aunque se puede hacer, es considerado una mala practica hacerlo porque puede llevar a un
problema en el camino. Deberías usar métodos como el get_name para obtener el valor –
mas sobre esto luego.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
13:
Constructores
Nota: Si creas una función construct() (si es su opción), PHP automáticamente llamara el
método/función constructor cuando hayas creado el objeto desde su clase.
<?php
class person {
var $name;
function construct($persons_name) {
$this->name = $persons_name;
}
function set_name($new_name) {
$this->name = $new_name;
}
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
• Funciones = métodos
• Variables = propiedades
... Ya que esto es un tutorial Orientado a Objetos de PHP usare ahora la terminología OO
(Orientado a Objetos).
Paso 14:
Ahora que hemos creado un método constructor, podemos proveer un valor para la
propiedad $name cuando creemos nuestro objeto persona.
Por ejemplo:
Esto nos salva de tener que llamar el método set_name() reduciendo la cantidad de código
Los constructores son comunes y son usados a menudo en PHP, Java, etc.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 15:
1. Publico
2. Protegido
3. Privado
Publico es el modificador por defecto. Significa que si no lo colocas se asume que es
Publico.
<?php
class person { var
$name; public
$height;
protected $social_insurance; private
$pinn_number;
function
construct($persons_name) {
$this->name = $persons_name;
}
function set_name($new_name) {
$this->name = $new_name;
}
function get_name() { return
$this->name;
}
}
?>
Nota: Cuando declaras una propiedad con la palabra "var" se considera publica.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 16:
Cuando declaras una propiedad como "privada" solo la misma clase puede acceder a la
propiedad.
Cuando una propiedad es declarada como "protegida" solo la misma clase y las clases
derivadas de esta clase pueden acceder a la propiedad. Esto tiene que ver con la
herencia... mas de esto luego.
Para ayudar a entender este concepto algo confuso de la POO, intenta el siguiente código y
mira como reacciona PHP. Consejo: Lee los comentarios en el código para mayor
información
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 17:
Asi como las propiedades, también puedes controlar el acceso a los métodos usando uno
de los tres modificadores de acceso:
1. Publico
2. Protegido
3. Privado
Porque tenemos modificadores de acceso ?
Las razones para los modificadores de acceso y otras construcciones OO, pueden llegar a ser
difíciles de entender... ya que somos principiantes aquí Asi que date un chance.
Con esto dicho, pienso que podemos resumir y decir que muchas construcciones POO
existen, con la idea de que muchos programadores puedan estar participando en un
proyecto.
<?php
class person { var
$name; public
$height;
protected $social_insurance; private
$pinn_number;
function construct($persons_name) {
$this->name = $persons_name;
}
private function get
return $this->$pinn_number;
}
?>
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Nota: Ya que el método get_pinn_number() es 'privado', el único lugar donde puedes utilizar
este método es en la misma clase – típicamente a través de otro método Si quisieras
llamar/usar este método directamente en tus paginas PHP, tendrías que declararlo "publico".
Paso 18:
Porque hacerlo?
En este tipo de situación, la herencia puede hacer tu código mas ligero... porque estas
reutilizando el mismo código en dos clases distintas. Pero a diferencia de la forma vieja de
programación en PHP:
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 19:
Nota de Nerd: Nerds deberían decir que 'employee' es un tipo de person (persona). El
código:
Has notado como somos capaces de usar set_name() en "employee", aunque no hemos
declarado ese método en la clase "employee". Esto es porque ya hemos creado set_name()
en la clase "person".
Nota de Nerd: La clase 'person' es llamada (por los nerds) la clase "base" o la clase "padre"
porque es la clase en la cual "employee" esta basada. Esta jerarquía de clase puede llegar a
ser importante a lo largo del camino cuando tus proyectos sean mas complejos.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 20:
Como puedes ver en el fragmento de código abajo, podemos llamar a get_name en nuestro
objeto, cortesía de "person".
Este es un clásico ejemplo de como la POO puede reducir el numero de lineas de código (no
tiene que escribir el mismo método dos o mas veces) mientras manteniendo su código
modular y mucho mas fácil de mantener.
<title>OOP in PHP</title>
<?php include("class_lib.php"); ?>
</head>
<body>
<?php
// Using our PHP objects in our PHP pages.
$stefan = new person("Stefan Mischook");
echo "Stefan's full name: " . $stefan->get_name();
$james = new employee("Johnny Fingers"); echo "--->
" . $james->get_name();
?>
</body>
</html>
Paso 21:
Sobrescribiendo métodos
A veces (cuando se usa herencia) puedes necesitar cambiar como un método funciona desde
la clase base. Por ejemplo, digamos el método set_name() en la clase "employee" tiene que
hacer algo diferente a lo que hace en la clase "person". Tu "sobrescribes" la versión de la
clase "person" de set_name() declarándola de nuevo en "employee".
El código:
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
<?php
class person {
// explícitamente agregando propiedades de la clase
// son opcionales pero una Buena practica var
$name;
function construct($persons_name) {
$this->name = $persons_name;
}
public function get_name() { return
$this->name;
}
// métodos protegidos y propiedades restringen el acceso a aquellos
// elementos
protected function set_name($new_name) { if
(name != "Jimmy Two Guns") {
$this->name = strtoupper($new_name);
}
}
}
// 'extends' es la palabra clave que permite la herencia class
employee extends person {
protected function set_name($new_name) { if
($new_name == "Stefan Sucks") {
$this->name = $new_name;
}
}
function construct($employee_name) {
$this->set_name($employee_name);
}
}
?>
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 22:
person::set_name($new_name);
código:
<?php
class person {
// agregando explícitamente propiedades de clase son opcionales
// pero es una Buena practica var
$name;
function construct($persons_name) {
$this->name = $persons_name;
}
public function get_name() { return
$this->name;
}
// métodos protegidos y propiedades restringen el acceso a
// aquellos elementos
protected function set_name($new_name) { if
(name != "Jimmy Two Guns") {
$this->name = strtoupper($new_name);
}
}
}
// 'extends' es la palabra clave que permite la herencia class
employee extends person {
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Paso 23:
Usando :: permite específicamente nombrar la clase donde quieres que PHP busque un
método – "person::set_name()" dice a PHP que busque set_name() en la clase "person".
También existe un atajo si solo quieres referir a la clase padre actual: Usando la palabra
reservada "parent".
El código:
<?php
class person {
// explícitamente agregar propiedades de las clases es opcional
// pero buena practica var
$name;
function construct($persons_name) {
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
$this->name = $persons_name;
}
public function get_name() { return
$this->name;
}
//métodos protegidos restringen el acceso a aquellos elementos
function
construct($employee_name) {
$this->set_name($employee_name);
}
}
?>
Comentarios Finales
Solo hemos tocado lo básico de PHP OO. Pero deberías tener suficiente información para
sentirse cómodo yendo hacia adelante.
Recuerda que la mejor manera de tener esto "bien grabado" es escribiendo el código por
diversión y practicando.
Yo sugeriría crear 10 objetos simples que hagan cosas simples, y entonces usar estos
objetos en paginas PHP actuales. Una vez que hayas hecho eso, te sentirás muy cómodo
con los objetos.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Para gente nueva a POO y que están mas "cómodos" con el PHP por procedimiento, podrán
estar preguntándose porque deberían molestarse en aprender conceptos de objetos ...
Porque tomarse la molestia de aprender?
El mundo de PHP:
Para pequeños proyectos, usar PHP orientado a objetos podría ser demasiado. Esto
dicho, el PHP orientado a objetos realmente comienza a brillar cuando los proyectos se
hacen mas complejos, y cuando tu tienes mas de una persona haciendo el programa.
Por ejemplo:
Si encuentras que tienes, digamos 10, 20 o mas funciones y encuentras que algunas de
las funciones están haciendo cosas similares... es tiempo de considerar empaquetar las
cosas en objetos usando POO.
POO es la manera moderna del desarrollo de software y todos los lenguajes mayores
(Java, PERL, PHP, C#, Ruby) usan este método de programación Como
desarrollador/programador de software, solo tiene sentido (en términos de carrera,)
mantener tus habilidades actualizadas.
Mas allá de hacerte un programador de PHP de mayor valor, entendiendo POO en PHP te
dará conocimientos (conocimientos de POO) que tu seras capaz de llevar contigo a otros
lenguajes.
... Cuando aprendas POO en PHP, aprenderás programación orientada a objetos para
cualquier lenguajes basado en OO.
Encontraras con tiempo que crear proyectos PHP basados en objetos, hará tu vida de
programador mas fácil Como un bonus adicional, pronto desarrollaras tu propia colección
de objetos reutilizables, que te servirán para otros proyectos.
Finalmente, también encontraras que el PHP basado en POO es mas fácil de mantener y
actualizar.
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
Retos en POO:
PHP OO presenta algunos retos en cuanto comienzas porque necesitas aprender a pensar
acerca de tus proyectos PHP de una manera diferente: necesitaras conceptualizar el
proyecto en términos de objetos.
Mas detalles...
Asi que si has estado esperando para saltar en el mundo de PHP OO, ahora es el mejor
momento para hacerlo.
Conclusión.
Pese a los grandes ventajas que ofrece la programación orientada a objetos gracias a
características propias como la herencia y la encapsulación, aun quedan problemas por
solucionar. No hay un lenguaje dominante que elimine la dependencia que existe entre unos
y otros, y las definiciones de las clases pueden resultar erróneas después de meses de
trabajo. Por otro lado, todos los elementos del programa deben de ser vistos como objetos y
la transición a este tipo de programación hace que sea necesario el reciclaje de muchos de
los programadores.
Bibliografía.
http://es.wikipedia.org/wiki/Orientado_a_objetos
http://www.monografias.com/trabajos/objetos/objetos.shtml
INGINIERIA WEB I
UNIVERSIDAD JOSE CARLOS MARIATEGUI
http://www.desarrolloweb.com/articulos/499.php
GRACIAS
INGINIERIA WEB I