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

Universidad Politécnica Territorial Andrés Eloy

Blanco
Introducción
Programa Nacional de Formación en Informática

La programación orientada a objetos, se refiere al método de programación que invoca el uso de clases para organizar los
datos y la estructura de una aplicación. Con PHP, la POO comenzó a ser factible con el lanzamiento de PHP 4, pero
realmente entró en su propia con PHP 5. Ahora, mientras el mundo espera el lanzamiento de PHP 8 nos esperan otro gran
salto en la evolución de PHP con POO En esta práctica vamos a explorar exactamente la POO con PHP y observar
algunas cosas que usted también debe recordar al respecto. Vamos a ver un ejemplo sencillo de cómo usarla.

Objetivo.

Estudiar, analizar y codificar en PHP Clases y Objetos.

Requerimientos.

Se debe contar con: Un (1) computador teniendo como mínimo el Sistema Operativo Libre ( Canaima/Ubuntu), Servidor
apache, lenguaje de Programación PHP, Editor de texto(sublime text,)

Componentes.

1. Conceptos básicos: POO, Sintaxis básicas de PHP

Unidad V: Programación Orientada a la Web /Lenguaje de Programación Orientada a Objeto

Objetivo de la Unidad:

Analizar, diseñar y desarrollar aplicaciones dinámicas en el entorno Web a través de Lenguaje de Programación
Orientado a Objeto

Sumario

Clases y Objetos
Lo primero que debemos tener en mente, es el principio de las clases. En pocas palabras, una clase es un objeto, y un
objeto es una clase. Pero, al igual que un objeto cotidiano, en PHP, los objetos tienen ciertas propiedades, y que cosas
pueden hacer. Una clase simple podría tener este aspecto:
<?php
class humano {
public $genero='Hombre';
}
Este ejemplo, el uso muy básico de esta clase sencilla (y no es el mejor uso) sería la de obtener el sexo de un ser humano.
Por desgracia, todos los humanos ejemplificados a continuación serán masculinos por defecto. Utilizamos la clase de la
siguiente manera:
<?php
$Pedro = new humano;
echo 'Pedro es un '. $Pedro->genero.'.';
Y retornará:
Pedro es un Hombre.
Para los objetos simples, que puede que esté bien, la clase humano, pero si tenemos que establecer el sexo de un ser
humano, ya sea como hombre o mujer, ¿Cómo lo hacemos?
Entra al rescate el constructor.
Constructor
Aquí es donde empezamos a ver el poder de la programación orientada a objetos. Considere
el siguiente ejemplo:
<?php
class humano {
//Atributo de la clase, el deber ser es que sean privados
private $genero;
//Método constructor
public function __construct($genero)
{

Ing. Lissette Torrealba


Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

//Modificador: $this, utilizado para hacer referencia a los atributos del objeto
$this->genero = $genero;
}
//Al igual que los métodos get y set de java para hacer introspección de la clase. Es decir
//es a través de estos métodos que podemos acceder a los atributos
public function get_genero()
{
return $this->genero;
}
}
Al agregar el Método Constructor (o función) a la clase, hace que las cosas sean un poco más interesantes. En primer lugar,
ahora podemos crear una instancias de esta clase como esta:
<?php
$Pedro = new humano('Hombre');
instancia, se pasan al método constructor del objeto. ¿Qué sucede ahora, si nos fijamos en nuestro constructor, es que
hemos asignado el valor del argumento ($genero) a una propiedad del objeto, mediante el uso de $this. Vamos a explorar
eso un poco más.
$this
En resumen, significa una referencia al objeto actual. Así que si tienes un objeto que está haciendo referencia, o a la
asignación de un valor, el mismo se hace a través de:
$this-> genero
Entonces usted está haciendo referencia a la asignación de un valor de la propiedad o atributo: genero del objeto que
actualmente se está trabajando.
self::
Ahora, $this es una buena manera de hacer referencia a propiedades o atributos, pero ¿cómo hago referencia a los
métodos? Recuerde que un método es una función dentro de un objeto, y le da al objeto la capacidad de hacer las cosas.
Con el fin de llamar a un método del objeto actual o en el que estoy trabajando, lo puedo llamar o usar a través del
modificador: self:: , como a continuación se ejemplifica:
class humano {
//Atributo de la clase, el deber ser es que sean privados
private $genero;
//Método constructor

public function __construct($genero)


{
//Modificador: $this, utilizado para hacer referencia los atributos del objeto
$this->genero = $genero;
//Se usa el modificado self:: para hacer referencia al método
echo self::get_genero();
}

Método get: método de acceso, solo devolverá el valor del atributo.

Método set: método modificador, asignara un nuevo valor al atributo.

//Al igual que los métodos get y set de java para hacer introspección de la clase. Es decir
//es a través de estos métodos que podemos acceder a los atributos
public function get_genero()
{
return $this->genero;
}

Para representar una clase se usara un rectángulo dividido en tres filas:


Ing. Lissette Torrealba
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

La primera fila contendrá el NOMBRE de la clase

La segunda los ATRIBUTOS (siendo los atributos los elementos que identifican de forma única a la clase, puede verse
como los campos de la tabla en el modelo entidad relación o MER como le dicen acá) y

La tercera los MÉTODOS de la clase (similar a las funciones en programación estructurada, se refiere a las operaciones
que puede ejecutar la clase, mostrar, sumar, restar, entre otros).

Persona
-cedula:String
-nombre:String
-sexo:String
-edocivil:String
+obsequio():String

Observaciones: Note que delante de cada atributo está presente el símbolo -, esto indica que el atributo debe ser declarado
como privado dentro de la codificación, así mismo el método esta precedido del símbolo +, que indica que es de acceso
público, es decir, puede ser accedido por el objeto que instancia la clase.

El otro punto a considerar es la declaración de tipo de datos que para el ejemplo son todos String esta
consideración es necesaria para cumplir con los estándares de diagrama de clase, sin embargo, los tipos de datos en php
dependen de la asignación de valor a la variable, es decir, no están definidos de forma explícita.

Traducción de diagrama de clase a código en php

El siguiente paso luego de realizar el diagrama de clases, es traducir este a lenguaje de máquina, para ello se
utiliza cualquiera de los lenguajes de programación que soporten el paradigma orientado a objetos, para nuestro caso
utilizaremos PHP.

El primer paso a realizar para crear la clase, es crear un archivo con extensión .php, el nombre queda a criterio
del grupo de desarrolladores; como sugerencia, puede escribir el nombre de la clase, seguido de la palabra clase.

Creación de archivo = personalclase.php

Si es buen observador, notara tanto el nombre del archivo como su extensión, están en minúsculas, esta
consideración se hace a fin de mantener la compatibilidad entre servidores si bien todo código php corre bajo un servidor
APACHE, la interpretación de mayúsculas y minúsculas difiere según el sistema operativo donde esté instalado el servidor,
en Windows, APACHE no es case sensitive, es decir, no hace diferencia entre mayúsculas y minúsculas, sin embargo bajo
sistemas operativos basados en UNIX sí.

Segundo paso La codificación, toda clase en php debe comenzar con la palabra reservada class seguido del
nombre de la clase

<?php
class personal {
}
?>
Lo siguiente que se debe realizar es declarar los atributos de la clase

<?php
class personal {
private $cedula;
private $nombre;

Ing. Lissette Torrealba


Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

private $sexo;
private $edocivil;
}
?>

Note que los atributos están precedidos de la palabra prívate, esta consideración hace que el valor de ellos no
pueda ser modificado directamente por el objeto que lo instancia y es la forma en que de ahora en adelante debe
ser usada, esto es la propiedad de encapsulamiento

Una vez declarado los atributos, lo siguiente que se debe crear es el primer método que se llama
constructor este método aunque no declarado en el diagrama de clase, debe existir en toda clase debido a
que es el que se encarga de inicializar el estado de los atributos que son privados

<?php
class Persona {
private $cedula;
private $nombre;
private $sexo;
private $edocivil;

public function__construct($cedula,
$nombre,$sexo,$edocivil){
$this->cedula = $cedula;
$this->nombre = $nombre;
$this->sexo = $sexo;
$this->edocivil = $edocivil;
}

}
?>

La última parte, consiste en codificar los métodos que fueron declarados dentro del diagrama de clases.

<?php
class Persona {
private $cedula;
private $nombre;
private $sexo;
private $edocivil;

public function __construct($cedula,$nombre,


$sexo,$edocivil){
$this->cedula = $cedula;
$this->nombre = $nombre;
$this->sexo = $sexo;
$this->edocivil = $edocivil;
}

public function obsequio(){


$mensaje = "";
Ing. Lissette Torrealba
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

if($this->sexo=='M'
and $this->edocivil='soltero'){
$mensaje = "Felicidades "
.$this->cedula." ".
$this->nombre." te ganaste una rumba con strepers";
}
else{
$mensaje="Los obsequios son para hombres solteros";

return $mensaje;
}// fin del método obsequio
?>

Nuestra clase ya está lista y definida, ahora habría que probar de crear a partir del “molde” un “objeto” y
probarlo.

Archivo objeto.php

<?php

require_once("clasepersona.php");

$objPersona = new Persona("10956121","Lissette","F","soltera");

$mjs=$objPersona->obsequio(); // instanciar el método

echo $mjs

?>

En resumen las clases se construyen en la etapa de diseño donde definimos qué es lo que
queremos crear. Lo que creamos a partir de ellas es un objeto que “tendrá vida” (será lo que verdaderamente
se ejecutará en nuestro sistema) y a la vez “único” (podrán existir muchos objetos del mismo tipo, pero
podremos interactuar con ellos e identificarlos de forma única).

El modelo–vista–controlador (MVC)
El patrón MVC es un patrón de arquitectura de software encargado de separar la lógica del negocio de la
interfaz del usuario y es el más utilizado en aplicaciones Web, ya que facilita la funcionalidad, mantenibilidad y
escalabilidad del sistema de forma sencilla, a la vez que permite no mezclar lenguajes de programación en el
mismo código.

La programación de la aplicación se separa en tres componentes con sus respectivas responsabilidades: un


modelo, una o varias vistas, y uno o varios controladores

Ing. Lissette Torrealba


Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

CÓMO FUNCIONA EL PATRÓN MVC

El funcionamiento básico del patrón MVC es el siguiente:

1. El usuario realiza una petición que captura el controlador

2. El controlador llama al modelo correspondiente

3. El modelo solicita la información a la base de datos

4. El modelo recoge la información de la base de datos

5. El controlador recibe la información

6. El controlador procesa y envía la información a la vista

7. La vista entrega al usuario la información de forma “humanamente legible”.

Ing. Lissette Torrealba


Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

La entrada del usuario, el modelado del mundo externo, y la retroalimentación visual para el usuario son
separados y dirigidos por los objetos modelo, vista y controlador.

Actividad a Realizar en el Laboratorio

1.- con el diagrama de la clase Persona, llevarlo a modelo MVC.


1er paso Crear tres carpeta: Vista, Modelo, Controlador
2do paso e n la carpeta Vista crear el archivo frmobsequio.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<link rel="" href="">
<title>Programación II - Formulario - Uptaeb</title>
<link rel="stylesheet" href="../recursos/css/miestilos.css">
</head>
<body>
<header></header>
<nav id="menu">
</nav>
<section id="principal">
<div id="contenido">
<form class="formulario" method="get" action="../Controlador/objeto.php">

Ing. Lissette Torrealba


Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

<h2> Registro de Obsequio </h2>


<div>
<label for="Cedula">Cédula:</label>
<input type="text" id="ci" name="txtci" placeholder="Introduzca su Cédula" title="Introduzca su Cédula" required />
</div>
<div>
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" class="elementoForm texto" name="txtnombre" placeholder="Introduzca su Nombre"
title="Introduzca su Nombre" required />
</div>
<div id="pasa">
<label for="sexo">Sexo:</label><BR>
<INPUT TYPE="radio" NAME="sexo" VALUE="F" >Mujer
<INPUT TYPE="radio" NAME="sexo" VALUE="M">Hombre
</div>
<div id="estadocivil">
<label for="estadocivil">Estado Civil:</label>
<SELECT NAME="estadocivil[]">
<OPTION>Soltero</OPTION>
<OPTION>Casado</OPTION>
<OPTION>Divorciado</OPTION>
<OPTION>Viudo</OPTION>
</SELECT>
</div>
<div>
<input type="submit" id="btnRegistrar" value="Registrar Objequio" />
<input type="reset" id="btnCancelar" value="Cancelar" class="button" />
<input type="button" id="btnSalir" value="Salir" class="button" />
</div>
</form>
</div>
</section>
<footer id="piespag">
<p>Derechos Reservados &copy; 2018 Lissette Torrealba</p>
</footer>
</body>
</html>
Ing. Lissette Torrealba
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

3er paso crear el archivo que contiene la clase Persona, clase persona.php y guardarlo en la carpeta Modelo
4to paso crear el archivo objeto.php en la carpeta controlador quien recibe los datos de la vista
<?php
require_once("../Modelo/clasepersona.php");
if (array_key_exists('txtci', $_GET)){
$ci=$_GET['txtci'];}
if (array_key_exists('txtnombre', $_GET)){
$nombre=$_GET['txtnombre'];}
if (array_key_exists('sexo', $_GET)){
$sexo=$_GET['sexo'];}
if (array_key_exists('estadocivil', $_GET)){
$estadocivil=$_GET['estadocivil'][0];
for ($i=1; $i < count($_GET['estadocivil']); $i++)
{
$estadocivil.=",".$_GET['estadocivil'][$i];
}// fin for }
$objPersona = new Persona($ci,$nombre,$sexo,$estadocivil);
$mjs=$objPersona->obsequio();
echo $mjs
?>
Actividad Post Laboratorio

1.- Se tiene el siguiente diagrama de una clase calculadora;

Calculadora
-Nro1:integer
-Nro2:integer

+sumar():integer
+restar():integer
+multiplicar():integer
+dividir():integer
Realizar la aplicación en MVC
2.- Se tiene el siguiente diagrama de clase

CuentaBancaria
-nroCta:string
-tipoCta:string
-saldoDisponible:real

+depositar(monto):integer
+retirar(monto):integer
+consulta():integer

Ing. Lissette Torrealba


Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática

Realizar la aplicación en MVC


Autoevaluación

1.- Ciclo foreach funciona para cualquier tipo de variable


a) Verdadero
b) Falso
2.- Los datos de entrada son enviados al script de PHP especificado en el atributo name de ese
formulario.
a) Verdadero
b) Falso

3.- El método constructor se encarga de Inicializar a la Clase


a) Verdadero
b) Falso

4.- Cuál de las siguientes es la sentencia para crear un objeto de una clase A

a) $objeto = new class Clase();


b) new A = $objeto;
c) $objeto= new A();
d) $objeto = clase A();

5.- Coloca el nro de la repuesta correcta: 1. Objeto, 2. Método get, 3. Método Setter, 4. Función
require, 5. Clase,6; Método. Post 7. $this, 8. Función include, 10. Metodo Getter

( ) Si no existe el fichero referenciado o su referencia es errónea, la función se genera un error fatal y detiene
la ejecución del script.

( ) Cuando se usa este método una cadena de caracteres es visible en la barra de direcciones del navegador

( ) Hace referencia al objeto que se está construyendo

( ) Método modificador, asignara un nuevo valor al atributo

( ) Si el fichero referenciado no existe o su referencia es errónea, la función genera un aviso o warning,


continuando la ejecución del Script
Referencias Bibliográficas

Bahit, Eugenia Programador PHP


Gutiérrez Rodríguez, Abraham y Bravo García Ginés PHP5 a través de ejemplos
IBM Capacitación (2008) Programación Web Avanzada

Ing. Lissette Torrealba

Вам также может понравиться