Вы находитесь на странице: 1из 32

PROGRAMACIN ORIENTADA A OBJETOS EN PHP

Programa: ANLISIS Y DESARROLLO DE SISTEMAS DE


INFORMACIN

Duracin estimada de estudio (horas): 6 horas

Estructura de contenidos

Mapa conceptual............................................................................2
Introduccin..................................................................................3
1. Definiendo las Clases..................................................................4
1.1. Estructura general de una clase.................................................5
1.2. Los Atributos...........................................................................6
1.3. Los Constructores....................................................................7
1.4. Los Mtodos............................................................................8
1.5. La Encapsulacin.....................................................................9
1.6. Modificadores de Acceso.........................................................11
2. Representacin de las Relaciones entre Clases.............................. 12
2.1. Relacin de Dependencia........................................................12
2.2. Relacin de Agregacin...........................................................13
2.3. Relacin de Composicin.........................................................14
3. Los Objetos..............................................................................14
3.1. Ejemplo de construccin de objetos.......................................... 15
3.2. Herencia...............................................................................16
3.3. Ejecucin de Mtodos.............................................................19
4. Ejercicio de ejemplo completo....................................................19
Recursos bibliogrficos...................................................................30
Glosario......................................................................................31

FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje


Programacin Orientada a Objetos en PHP

Programacin Orientada a Objetos en PHP.


Mapa Conceptual

2
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Introduccin

Al revisar los conceptos relacionados con la construccin de sistemas de


informacin es relevante explorar, reconocer y desarrollar competencias
en el uso de la Programacin Orientada a Objetos (POO). La aplicacin
de recursos y elementos como: Clase, Objeto, Herencia, Polimorfismo,
Abstraccin y Encapsulacin son parte esencial de la POO.

El presente objeto de aprendizaje, presenta los conceptos y recursos que


le permitan comprender los fundamentos de la Programacin Orientada a
Objetos utilizando el lenguaje de desarrollo PHP.

3
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

1. Definicin de una clase en PHP

Una clase inicia con la palabra reservada class en minscula y despus el


nombre.

class NombreClase
{

Declaracin de Clases Abstractas

Las clases abstractas son aquellas que no necesitan ser instanciadas, pero
si pueden ser heredadas. Se definen anteponiendo la palabra abstract.

<php

abstract class NombreClase{

//No necesita ser instanciada

?>

4
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Declaracin de Clases Final

PHP incorpora clases finales que no pueden ser heredadas por otra. Se
definen anteponiendo la palabra reservada final.

<php

final class NombreClase{

//esta clase no puede ser heredada

?>

1.1 Estructura General de una Clase en PHP.

La siguiente figura presenta la estructura general de una clase, la definicin


de los atributos, seguido del constructor, como elemento opcional el
destructor y por ltimo la definicin de los mtodos de la clase.

1 <php
2
3 class NombreClase
4 {
5
6 //Definicin de Atributos
7
8 //Definicin Constructor
9
10 //Definicin de destructor (opcional)
11
12 //Definicin de Mtodos
13
14 }
15 ?>
16

5
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Ahora vamos a mostrar la implementacin de una clase denominada


Persona como ejemplo.

1 <php
2 class Persona
3 {
4 //Definicin de Atributos
5 private $nombre;
6
7 //Constructor
8 public function Persona($nombre)
9 {
10 $this->nombre=$nombre;
11 }
12
13 //Definicin de Mtodos
14 public function getNombre()
15 {
16 return $this->nombre;
17 }
18 public function setNombre($value)
19 {
20 $this->nombre=$value;
21 }
22
23 public function leer($libro)
24 {
25 //aqu va el cdigo del mtodo
26 }
27 }
28 ?>

1.2 Los Atributos

Los atributos son las caractersticas, cualidades, propiedades distintivas


de cada clase. Contienen informacin sobre el objeto. Determinan la
apariencia, estado y dems particularidades de la clase. Varios objetos de
una misma clase tendrn los mismos atributos pero con valores diferentes.

Cuando creamos un objeto de una clase determinada, los atributos


declarados por la clase son localizadas en memoria y pueden ser
modificados mediante los mtodos.

6
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Lo ms conveniente es que los atributos sean privados para que solo los
mtodos de la clase puedan modificarlos.

Definicin:

//Definicin de Atributos
private $identificacin;
private $nombre;
private $fechanacimiento;

1.3 Los constructores

El constructor es un mtodo especial de una clase. El objetivo fundamental


del constructor es inicializar los atributos del objeto que creamos.

Se pueden definir varios constructores (sobrecarga de constructores),


que permitan crear el objeto de diferentes maneras.

Definicin:

Se pueden definir de dos formas:

1. Mediante un mtodo llamado __construct

//Constructor
public function __construct($nombre)
{
$this->nombre=$nombre;
}

7
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

2. Mediante un mtodo llamado igual que el nombre de la clase.

//Constructor
public function Persona($nombre)
{
$this->nombre=$nombre;
}

Otras caractersticas de los constructores son:

El constructor se ejecuta inmediatamente luego de crear un objeto y


no puede ser llamado nuevamente.

Un constructor no puede retornar dato.

Un constructor puede recibir parmetros que se utilizan normalmente


para inicializar atributos.

El constructor es un mtodo opcional, de todos modos es muy comn


definirlo.

1.4 Los Mtodos

Los mtodos son como las funciones en los lenguajes estructurados, pero
estn definidos dentro de una clase y operan sobre los atributos de dicha
clase.

Los mtodos de una Clase son los que nos permiten definir las
funcionalidades o responsabilidades de la clase. Para ello debemos
preguntarnos que puede hacer la clase.

El objetivo de un mtodo es ejecutar las actividades que tiene encomendada


la clase a la cual pertenece.

8
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Los atributos de un objeto se modifican mediante llamadas a sus mtodos.

Ejemplo Definicin de Mtodos

//Definicin de Mtodos
public function getNombre()
{
return $this->nombre;
}

public function setNombre($value)


{
$this->nombre=$value;
}

En los ejemplos anteriores el primer mtodo retorna un valor para ello se


utiliza la sentencia:

return $variable;
El segundo Mtodo recibe un parmetro y este parmetro es asignado al
atributo nombre.

$this->nombre=$value;

1.5 Encapsulacin

La encapsulacin en un programa se da cuando se definen los atributos


de una clase con el nivel de acceso ms restrictivo, para que el acceso o
la modificacin de los atributos de esa clase slo sean posibles a travs
de sus mtodos

9
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

1 <php
2 class Persona
3 {
4 //Definicin de Atributos
5 private $identificacin;
6 private $nombre; Encapsulacin
7 private $fechanacimiento;
8
9 //Constructor
10 public function Persona($nombre)
11 {
12 $this->nombre=$nombre;
13 }
14
15 //Definicin de Mtodos
16 public function getNombre()
17 {
18 return $this->nombre;
19 }
20 public function setNombre($value)
21 {
22 $this->nombre=$value;
23 }
24
25 public function getIdentificacin()
26 { Mtodos
27 return $this->identificacin;
28 }
29 public function setidentificacin($value)
30 {
31 $this->nombre=$value;
32 }
33
34 public function getFechaNacimiento()
35 {
36 return $this->fechaNacimiento;
37 }
38 public function setFechaNacimiento($value)
39 {
40 $this->fechaNacimiento=$value;
41 }
42 }
43 ?>

10
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

1.6 Modificadores de Acceso

Public: Cundo un atributo o un mtodo es definido como public se puede


acceder a l directamente desde donde se haya instanciado el objeto.

Ejemplos:

public $atributo;

public function metodo()


{
return $valor;
}

Private: Cuando un atributo o un mtodo es definido como private, solo


se puede acceder a ellos desde la misma clase.

Ejemplos:

//Definicin de Atributos
private $identificacin;
private $nombre;
private $fechanacimiento;

//Constructor
private function operacion($valor1)
{
return $valor*2;
}

Protected: Cuando un atributo o mtodo es definido como protected,


solo se puede acceder a l sin ninguna restriccin desde la clase o desde
sus heredados.

Ejemplos:

//Definicin de Atributos
protected $identificacin;
protected $nombre;

11
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

2. Representacin de las Relaciones entre Clases

2.1 Relacin de Dependencia

Es una relacin de uso entre dos entidades, una de las clases usa a la
otra.

La relacin de dependencia es cuando una clase depende de la funcionalidad


que ofrece otra clase

class Class Model

Motor
Carro
- cilindraje
+ mostrarMotor(Motor):void
+ getCilindraje() : var
+ Motor(var) : void

Ahora como se traduce en cdigo PHP:

1 <php
2 require_once ('Motor.php');
3
4 class Carro
5 {
6
7 function mostrarMotor(Motor $objetoMotor)
8 {
9 echo $objetoMotor->getCilindraje();
10 }
11
12 }
13 ?>
14

12
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

2.2 Relacin de Agregacin

Es una relacin de asociacin donde una de las clases forma parte del
todo correspondiente a la otra clase.

Curso Aprendices

- aprendices: array

+ mostrarMotor(Motor):void

Ahora como se traduce en PHP:

1 <?php
2 require_once ('Aprendices.php');
3 class Curso
4 {
5 //definiendo un arreglo donde se van a guardar los aprendices
6 private $aprendices = array();
7
8 function agregarAprendices(Aprendices $aprendiz)
9 {
10 //se agrega al arreglo $aprendices el objeto aprendiz
11 $this->aprendices[] = $aprendiz;
12 }
13 }
14
15 $objCurso = new Curso();
16 $objCurso->agregarAprendices(new Aprendices());
17 $objCurso->agregarAprendices(new Aprendices());
18 $objCurso->agregarAprendices(new Aprendices());
19 $objCurso->agregarAprendices(new Aprendices());
20 $objCurso->agregarAprendices(new Aprendices());
21 /*Como ejemplo en el curso anterior solo se agregaron
22 5 aprendices */
23 ?>

13
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

2.3 Relacin de Composicin

Similar a la relacin de agregacin solo que en est relacin existe una


relacin de vida.

Por ejemplo:

Empresa Empleado

En esta relacin la empresa existe si tiene empleados. El cdigo en PHP


no cambia en nada frente a la relacin de agregacin.

3 Los objetos

Para crear un objeto, es necesario emplear alguno de los constructores de


la clase. Cuando se esta creando un objeto se esta instanciando la clase.

Desde un archivo php podemos tener el siguiente cdigo para crear un


objeto:

$objeto = new Clase();

$objeto = new Clase($parametros);

En la creacin del objeto encontramos la sentencia new y despus va el


nombre de la clase. Recordemos que al momento de instanciar se llama
automticamente a los constructores que tenga la clase. Por lo tanto
podemos crear un objeto de diferentes formas, dependiendo del nmero
de constructores.

14
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

3.1 Ejemplo de construccin de objetos

El ejemplo planteado permite crear una pgina php que instancia dos
objetos de la clase persona y muestra el nombre de cada uno de ellos.

En la siguiente imagen se relaciona el ejemplo completo:

1 <php
2 //incluimos el archivo donde esta el cdigo de la clase Persona
3 include Persona.php;
4
5 //Instanciamos el primer Objeto
6 $objPersona=new Persona(Pedro Picapiedra);//instanciamos
7
8 /* Para poder mostrar en pantalla el nombre de la persona debemos utilizar el
9 mtodo gerNombre(), ya que el atributo $nombre es privado.*/
10
11
12 //Ahora Instanciamos otra vez la clase persona
13 $objPersona=new Persona(Vilma);
14 echo <br> Nombre del segundo obeto Persona : . $objPersona->getNombre();
15 ?>

Explicacin lnea por lnea.

<?php Cdigo de inicio del cdigo php.

Include La forma como incluimos un archivo php, aqu estamos


Persona.php incluyendo el archivo Persona.php que contiene el cdigo
de la clase persona.

$objPersona = Esta lnea crea un objeto llamado $objPersona y estamos


new pasando como parmetro el valor de Pedro Picapiedra.
Persona(Pedro Veamos la relacin con la clase
Picapiedra)
//Constructor
public function Persona($nombre)
{
$this->nombre=$nombre;
}

$objPersona=new Persona(Pedro Picapiedra); //instanciamos

15
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
echo <br> Esta lnea obtiene el nombre de la persona mediante el
Nombre del Primer
obeto Persona : mtodo getNombre() de la clase persona y lo imprime en
$objPersona=new Persona(Pedro Picapiedra); //instanciamos

Programacin Orientada a Objetos en PHP

echo <br> Esta lnea obtiene el nombre de la persona mediante el


Nombre del Primer
obeto Persona : mtodo getNombre() de la clase persona y lo imprime en
.$objPersona->ge
tNombre(); pantalla. Se debe utilizar ese mtodo debido a que el
atributo nombre est definido como private.
Veamos la relacin

//Definicin de Mtodos
public function getNombre()
{
return $this->nombre;
}

echo <br> Nombre del Primer objeto Persona :


.$objPersona->getNombre();

> Etiqueta de cierre del cdigo php

El resultado final al ejecutar el cdigo es el siguiente:

localhost

localhost/virtualidad/

Nombre del primer Objeto Persona : Pedro Picapiedra


Nombre del segundo Objeto Persona : Vilma

3.2 Herencia:

La herencia es la que me permite crear nuevas clases partiendo de clases


ya existentes. En la Herencia existe el concepto de SuperClase o Clase
padre y la clase que hereda se le conoce como clase Hija.

16
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Definicin de una clase que hereda de otra

Ejemplo:

class Hija extends Padre


{

Como ejercicio vamos a crear una clase Estudiante que hereda de la Clase
persona.

//Definicin de Atributos
protected $nombre;

Para ello primero vamos a modificar la clase Persona y vamos a declarar


el atributo nombre como protected.

1 <php
2 include Persona.php; //la incluimos para poder acceder a ella
3 class Estudiante extends Persona
4 {
5 //Atributo curso: Que curso estudia el Estudiante.
6 private $curso;
7
8 //Mtodo que obtiene el curso que estudia el estudiante.
9 public function getCurso()
10 {
11 return $this->curso;
12 }
13
14 //Mtodo que permite cambiar el curso del estudiante.
15 public function setCurso($value)
16 {
17 $this->curso=$value;
18 }
19
20 //Constructor Clase Estudiante
21 public function Estudiante($nombre, $curso)
22 {
23 /* como iniciamos el atributo nombre que lo hereda de la
24 clase Persona para ello el atributo nombre debe ser declarado
25 como protected.*/
26 $this->nombre=$nombre;
27 $this->curso=$curso;
28 }
29 }
30 ?>
31

17
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Ahora vamos a crear un archivo donde podamos crear un objeto


estudiante.

<?php
//incluimos el archivo donde est el cdigo de la clase Persona
include Estudiante.php;
//Instanciamos para crear el primer objeto tipo Estudiante
Estudiante($nombre, $curso)
$objEstudiante=new Estudiante(

En la imagen anterior podemos ver en el momento de codificar los


parmetros necesarios solicitados por el constructor de la clase Estudiante.
Por lo anterior debemos de ingresar el nombre del Estudiante y el Curso.

Cdigo completo de la Implementacin.

1 <html>
<meta http-equiv="Contect-Type" contect="text/html; charset=utf-8">
2 <?php
3
4 //incluimos el archivo donde est el cdigo de la clase Persona
5 include "Estudiante.php";
//Instanciamos para crear el primer objeto tipo Estudiante
6
7 $objEstudiante=new Estudiante("Csar Cullar", "DASI");
8
//creamos otro objeto de tipo Estudiante
9 $objEstudiante=new Estudiante("Marcela Mdez", "Multimedia");
10
11 echo ESTUDIANTES INSCRITOS<BR>;
12
/*Vamos ahora a imprimir en pantalla los Datos de los Estudiantes
13 accedemos al mtodo getNombre() que lo hereda de la clase persona*/
14
15 echo <br> Nombre del Estudiante : . $objEstudiante->getNombre();
16 /*Ahora vamos a imprimir en pantalla el Curso, para ello
17 accedemos al mtodo getCurso() propio de la clase Estudiante.*/
18 echo <br> Curso que se encuentra realizando el Estudiante : . $objEstudiante->getNombre();
19
echo <br> Nombre del Estudiante : . $objEstudiante2->getNombre();
20 echo <br> Curso que se encuentra realizando el Estudiante : . $objEstudiante2->getNombre();
21
22 ?>

18
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Resultado de la Implementacin

localhost

localhost/virtualidad/crearEstudiante.php

ESTUDIANTES INSCRITOS

Nombre del Estudiante: Csar Cullar


Curso que se encuentra realizando el Estudiante: ADSI
Nombre del Estudiante: Marcela Mndez
Curso que se encuentra realizando el Estudiante: Multimedia

3.3 Ejecucin de Mtodos

Despus de que se ha creado un objeto se puede acceder a los mtodos


pblicos de la clase.

$objEstudiante=new Estudiante("Csar Cullar", "DASI");

$objEstudiante->
getCurso() Estudiante Estudiante.php
getNombre() Persona Persona.php
Mtodos leer($libro) Persona Persona.php
setCurso($value) Estudiante Estudiante.php
setNombre($value) Persona Persona.php

Nos muestra los mtodos pblicos propios de la clase o nos muestra los
mtodos heredados de alguna clase que sean declarados como protected.

4 Ejercicio de ejemplo completo

Enunciado

Se requiere hacer una aplicacin que permita calcular el salario a pagar a


los empleados de una empresa. En la empresa hay dos tipos de empleados
unos contratistas y otros de planta.

19
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

A los contratitas el salario depende del valor de la hora.

Formula: Salario = ValorHora * TotalHoras

El salario de los de planta depende del sueldo bsico mensual.

Formula = SalarioBasico + HorasExtras deducciones.

Diagrama de Clases

class Class Model


Empleado

# cilindraje: string
# identificacion: int
# nombre: string
# salario: float

+ Empleado(var, var, var) : void


property get
+ getcargo() : var
+ getidentificacion() : var
+ getnombre() : var
+ getsalario() : var

property get
+ setcargo(var) : void
+ setidentificacion(var) : void
+ seinombre(var) : void
+ setsalario(var) : void

Contratista Planta

- totalHoras: int - deducciones: float


- valorHora: float - sueldoBasico: float
- valorExtras: float
+ calcularSalario(var, var)
+ Contratista() : void + calcularSalario()
+ Planta() : void
property get
+ getcargo() : var property get
+ getidentificacion() : var + getcargo() : var
+ getnombre() : var + getdeducciones() : var
+ getsalario() : var + getidentificacion() : var
+ gettotalHoras() : var + getnombre() : var
+ getvalorHoras() : var + getsalario() : var
+ getsueldoBasico() : var
property get
+ getvalorExtras() : var
+ settotal(var) : void
+ setvalorHoras(var) : void property get
+ setdeducciones(var) : void
+ setsueldoBasico(var) : void
+ setvalorExtras(var) : void

20
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Cdigo Clase Empleado

1 <php
2 /**
3 * @author Csar Cullar
4 * @version 1.0
5 * @created 20-oct-2013 07:47:27 a.m.
6 */
7 class Empleado
8 {
9 protected $cargo;
10 protected $identificacion;
11 protected $nombre;
12 protected $salario;
13
14 //Constructor
15 /**
16 * @param cargo, @param salario, @param nombre, @param
17 identificacion
18 */
19 public function Empleado($identificacion,$nombre,$cargo)
20 {
21 $this->identificacion=$identificacion;
22 $this->nombre=$nombre;
23 $this->cargo=$cargo;
24 }
25
26 protected function getCargo()
27 {
28 return $this->cargo;
29 }
30
31 protected function getIdentificacion()
32 {
33 return $this->identificacion;
34 }
35
36 protected function getNombre()
37 {
38 return $this->nombre;
39 }
40
41 protected function getSalario()
42 {
43 return $this->salario;
21 44 }
45 FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
46 /** @param newVal */
47 protected function setCargo($newVal)
34 }
35
36 protected function getNombre()
Programacin Orientada a Objetos en PHP
37 {
38 return $this->nombre;
39 }
40
41 protected function getSalario()
42 {
43 return $this->salario;
44 }
45
46 /** @param newVal */
47 protected function setCargo($newVal)
48 {
49 $this->cargo = $newVal;
50 }
51
52 /** @param newVal */
53 protected function setIdentificacion($newVal)
54 {
55 $this->identificacion = $newVal;
56 }
57
58 /** @param newVal */
59 protected function setNombre($newVal)
60 {
61 $this->nombre = $newVal;
62 }
63
64 /** @param newVal */
65 protected function setSalario($newVal)
66 {
67 $this->salario = $newVal;
68 }
69 }
70 ?>
71

22
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Cdigo Clase Contratista

1 <php
2 /**
3 * @author Csar Cullar
4 * @version 1.0
5 * @created 20-oct-2013 07:47:29 a.m.
6 */
7 class Contratista extends Empleado
8 {
9 private $totalHoras;
10 private $valorHora;
11
12 //Constructor
13 public function
14 Contratista($identificacion,$nombre,$cargo)
15 {
16 //ejecutamos el connstructor de la clase Padre Empleado
17 parent::__construct($identificacion,$nombre,$cargo);
18 }
19
20 /** @param totalHoras, @param valorHora */
21 public function calcularSalario($valorHora, $totalHoras)
22 {
23 $this->salario= $valorHora*$totalHoras;
24 }
25
26 public function getTotalHoras()
27 {
28 return $this->totalHoras;
29 }
30
31 public function getValorHora()
32 {
33 return $this->valorHora;
34 }
35
36 public function getCargo()
37 {
38 return $this->cargo;
39 }
40
41 public function getIdentificacion()
42 {
43 return $this->identificacion;
23 44 }
45 public function getNombre()
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
46 {
47 return $this->nombre;
34 }
35
36 public function getCargo()
Programacin Orientada a Objetos en PHP
37 {
38 return $this->cargo;
39 }
40
41 public function getIdentificacion()
42 {
43 return $this->identificacion;
44 }
45 public function getNombre()
46 {
47 return $this->nombre;
48 }
49
50 public function getSalario()
51 {
52 return $this->salario;
53 }
54
55 /** @param newVal */
56 public function setTotalHoras($newVal)
57 {
58 $this->totalHoras = $newVal;
59 }
60
61 /** @param newVal */
62 public function setValorHora($newVal)
63 {
64 $this->valorHora = $newVal;
65 }
66 }
67 ?>
68

24
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Cdigo Clase Planta

1 <php
2 /**
3 * @author Csar Cullar
4 * @version 1.0
5 * @created 20-oct-2013 07:47:30 a.m.
6 */
7 class Planta extends Empleado
8 {
9 private $deducciones;
10 private $sueldoBasico;
11 private $valorExtras;
12
13 //Constructor
14 public function Planta($identificacion,$nombre,$cargo)
15 {
16 //ejecutamos el constructor de la clase Padre Empleado
17 parent::__construct($identificacion,$nombre,$cargo);
18 }
19 public function calcularSalario()
20 {
21 $this->salario=$this->sueldoBasico + $this->valorExtras -
22 $this->deducciones;
23 }
24
25 public function getDeducciones()
26 {
27 return $this->deducciones;
28 }
29
30 public function getSueldoBasico()
31 {
32 return $this->sueldoBasico;
33 }
34
35 public function getValorExtras()
36 {
37 return $this->valorExtras;
38 }
39
40 public function getCargo()
41 {
42 return $this->cargo;
43 }
25 44
45 public function getIdentificacion()
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
46 {
47 return $this->identificacion;
34
35 public function getValorExtras()
36 { Programacin Orientada a Objetos en PHP
37 return $this->valorExtras;
38 }
39
40 public function getCargo()
41 {
42 return $this->cargo;
43 }
44
45 public function getIdentificacion()
46 {
47 return $this->identificacion;
48 }
49
50 public function getNombre()
51 {
52 return $this->nombre;
53 }
54
55 public function getSalario()
56 {
57 return $this->salario;
58 }
59
60 /** @param newVal */
61 public function setDeducciones($newVal)
62 {
63 $this->deducciones = $newVal;
64 }
65
66 /** @param newVal */
67 public function setSueldoBasico($newVal)
68 {
69 $this->sueldoBasico = $newVal;
70 }
71
72 /** @param newVal */
73 public function setValorExtras($newVal)
74 {
75 $this->valorExtras = $newVal;
76 }
77
78 }
79 ?>
80

26
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Cdigo de la Implementacin Empleado Planta


1 <php
2 include ('Empleado.php');
3 include "Planta.php";
4
5 echo "Calcular Salario Empleado";
6 echo "<br>";
7 //Datos de Entrada Empleado de Planta
8 $tipoEmpleado = "Planta";
9 $identificacion="456";
10 $nombre="Faustino Asptrilla";
11 $cargo = "Gerente";
12 $SueldoBasico = 4500000;
13 $valorExtras=345000;
14 $deducciones=1098000;
15
16 //Creamos el objeto
17 $objPlanta = new Planta($identificacion,$nombre,$cargo);
18
19 //modificamos atributos del empleado de planta
20 $objPlanta->setSueldoBasico($SueldoBasico);
21 $objPlanta->setValorExtras($valorExtras);
22 $objPlanta->setDeducciones($deducciones);
23
24 //imprimimos datos de entrada
25 echo "<br>id Empleado: " . $objPlanta->getIdentificacion();
26 echo "<br>Nombree Empleado: " . $objPlanta->getNombre();
27 echo "<br>Cargo Empleado: " . $objPlanta->getCargo();
28 echo "<br>Sueldo Basico: $" . $objPlanta->getSueldoBasico();
29 echo "<br>Valor Extras: $" . $objPlanta->getValorExtras();
30 echo "<br>Total Deducciones: $" . $objPlanta->getDeducciones();
31
32 echo "<br> <br> RESULTADOS <BR><BR>";
33
34 //calculam os el salario del empleado de planta
35
36 $objPlanta->calcularSalario();
37
38 //Mostramos resultados
39
40 echo "<br>id Empleado: " . $objPlanta->getIdentificacion();
41 echo "<br>Nombree Empleado: " . $objPlanta->getNombre();
42 echo "<br>Cargo Empleado: " . $objPlanta->getCargo();
43 echo "<br>Salario Neto a Recibir: $" . $objPlanta->getSalario();
44
45 ?>
46

27
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Cdigo Implementacin Empleado Contratista

1 <php
2 include ('Empleado.php');
3 include "Contratista.php";
4
5 //Datos de Entrada Empleado Contratista
6
7 echo "Calcular Salario Empleado Contratista ";
8 echo "<br>";
9 $tipoEmpleado = "Contratista";
10 $identificacion = "123";
11 $nombre = "Angie Cepeda";
12 $cargo = "Secretaria";
13 $totalHorasTrabajadas = 160;
14
15 //Creamos el objeto
16 $objContratista = new Contratista($identificacion,$nombre,$cargo);
17
18 //modificamos atributos del empleado de Contrato
19 $objContratista->setvalorHora(4000);
20 $objContratista->setTotalHoras($totalHorasTrabajadas);
21
22 //imprimimos datos de entrada
23 echo "<br>id Empleado: " . $objContratista->getIdentificacion();
24 echo "<br>Nombree Empleado: " . $objContratista->getNombre();
25 echo "<br>Cargo Empleado: " . $objContratista->getCargo();
26 echo "<br>Valor de la Hora: $" . $objContratista->getValorHora();
27 echo "<br>Total Horas Trabajas en el Mes: " . $objContratista->getTotalHoras();
28
29 echo "<br> <br> RESULTADOS <BR><BR>";
30
31 //calculam os el salario del empleado de Contrato
32 $objContratista->calcularSalario(4000,$totalHorasTrabajadas);
33
34 //Mostramos resultados
35 echo "<br>id Empleado: " . $objContratista->getIdentificacion();
36 echo "<br>Nombree Empleado: " . $objContratista->getNombre();
37 echo "<br>Cargo Empleado: " . $objContratista->getCargo();
38 echo "<br>Salario Neto a recibir en el Mes: " . $objContratista->getSalario();
39
40 ?>
41
42

28
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

Resultados Implementacin Empleado Planta

localhost

localhost/salario/salarioPlanta.php

Calcular Salario Empleado

id Empleado: 456
Nombre Empleado: Faustino Asprilla
Cargo Empleado: Gerente
Valor de la Hora: $4500000
Valor Extras: $345000
Total Deducciones: $1098000

RESULTADOS

id Empleado: 456
Nombre Empleado: Faustino Asprilla
Cargo Empleado: Gerente
Salario Neto a Recibir: $3747000

Resultado implementacin Empelado Contratista


localhost

localhost/salario/salariocontratista.php

Calcular Salario Empleado Contratista

id Empleado: 123
Nombre Empleado: Angie Cepeda
Cargo Empleado: Secretaria
Valor de la Hora: $4000
Total Horas Trabajadas en el Mes: 160

RESULTADOS

id Empleado: 123
Nombre Empleado: Angie Cepeda
Cargo Empleado: Secretaria
Salario Neto a recibir en el Mes: 640000

29
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

RECURSOS BIBLIOGRFICOS

Programacin Orientada a Objetos en PHP. http://www.phpya.com.ar/


poo/

Cobo, Angel. Gomez Patricia, Perez Daniel, Rocha Rocio. PHP y MySQL:
Tecnologa para el desarrollo de aplicaciones web.

Programacin Orientada a Objetos en PHP. http://www.php.net/manual/


es/language.oop5.php

Recursos en Videotutoriales Programacin Orientada a Objetos en PHP.


http://www.cesarcancino.com/?cat=2

Place, Enrique. Programacin Orientada a Objetos en PHP 5. http://www.


surforce.com

30
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

GLOSARIO

POO: Programacin Orientada a Objetos.

__construct: Mtodo Constructor de una clase en PHP.

__destruct: Mtodo destructor de una clase en php.

$this=Variable que se utiliza en una clase para poder acceder a los


mtodos o atributos de la clase.

class = Palabra reservada utilizada en la definicin de una clase.

extends = Palabra utilizada en la definicin de una clase que hereda a


otra clase.

31
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Programacin Orientada a Objetos en PHP

PROGRAMACIN ORIENTADA A
OBJETO DE APRENDIZAJE
OBJETOS EN PHP

Desarrollador de contenido Csar Marino Cullar Chacn


Experto temtico

Asesor Pedaggico Rafael Neftal Lizcano Reyes

Manuel Francisco Silva Barrera


Productores Multimedia Luisa Fernanda Bolivar

Programador Daniel Eduardo Martnez Daz

Lder expertos temticos Ana Yaqueline Chavarro Parra

Lder lnea de produccin Santiago Lozada Garcs

R
El logo de PHP es una marca registrada, una subsidiaria de Sun
Microsystems y esta a su vez de Oracle Corporation.

Registered trademark

32
FAVA - Formacin en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje