SlideShare una empresa de Scribd logo
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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)
{
Introducción
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.
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
//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:
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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;
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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 = "";
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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”.
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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">
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
<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>
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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
Universidad Politécnica Territorial Andrés Eloy
Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
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

Más contenido relacionado

La actualidad más candente

Guía interfaces
Guía interfacesGuía interfaces
Guía interfaces
lissette_torrealba
 
UML traducción código PHP
UML traducción código PHPUML traducción código PHP
UML traducción código PHP
lissette_torrealba
 
Guía Teórica POO
Guía Teórica POOGuía Teórica POO
Guía Teórica POO
lissette_torrealba
 
Guía práctica Herencia
Guía práctica HerenciaGuía práctica Herencia
Guía práctica Herencia
lissette_torrealba
 
Guía polimorfismo
Guía polimorfismoGuía polimorfismo
Guía polimorfismo
lissette_torrealba
 
Guía Teórica unidad III, Interfaz Gráficas de Usuarios
Guía Teórica unidad III, Interfaz Gráficas de UsuariosGuía Teórica unidad III, Interfaz Gráficas de Usuarios
Guía Teórica unidad III, Interfaz Gráficas de Usuarios
lissette_torrealba
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
lissette_torrealba
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
ljds
 
2 4 formularios_php
2 4 formularios_php2 4 formularios_php
2 4 formularios_php
Juan José Taboada León
 
Guia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSSGuia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSS
lissette_torrealba
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, Js
Jose Ponce
 
2 1 sintaxis_php
2 1 sintaxis_php2 1 sintaxis_php
2 1 sintaxis_php
Juan José Taboada León
 
Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
Jose Ponce
 
Practica 1 html_basico
Practica 1 html_basicoPractica 1 html_basico
Practica 1 html_basico
fanny casadiego
 
Programación orientada a objetos II
Programación orientada a objetos IIProgramación orientada a objetos II
Programación orientada a objetos II
yanburbano
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
roger gustavo saravia aramayo
 
Consultas linq
Consultas linqConsultas linq
Consultas linq
Juan Carlos Prieto
 
1. guia css3
1. guia css31. guia css3
1. guia css3
ljds
 

La actualidad más candente (20)

Guía interfaces
Guía interfacesGuía interfaces
Guía interfaces
 
UML traducción código PHP
UML traducción código PHPUML traducción código PHP
UML traducción código PHP
 
Guía Teórica POO
Guía Teórica POOGuía Teórica POO
Guía Teórica POO
 
Guía práctica Herencia
Guía práctica HerenciaGuía práctica Herencia
Guía práctica Herencia
 
Guía polimorfismo
Guía polimorfismoGuía polimorfismo
Guía polimorfismo
 
Guía Teórica unidad III, Interfaz Gráficas de Usuarios
Guía Teórica unidad III, Interfaz Gráficas de UsuariosGuía Teórica unidad III, Interfaz Gráficas de Usuarios
Guía Teórica unidad III, Interfaz Gráficas de Usuarios
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
2 4 formularios_php
2 4 formularios_php2 4 formularios_php
2 4 formularios_php
 
Guia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSSGuia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSS
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, Js
 
2 1 sintaxis_php
2 1 sintaxis_php2 1 sintaxis_php
2 1 sintaxis_php
 
Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
 
Practica 1 html_basico
Practica 1 html_basicoPractica 1 html_basico
Practica 1 html_basico
 
Programación orientada a objetos II
Programación orientada a objetos IIProgramación orientada a objetos II
Programación orientada a objetos II
 
Manual basico de PHP
Manual basico de PHPManual basico de PHP
Manual basico de PHP
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
Consultas linq
Consultas linqConsultas linq
Consultas linq
 
1. guia css3
1. guia css31. guia css3
1. guia css3
 
Manual+php+básico
Manual+php+básicoManual+php+básico
Manual+php+básico
 

Similar a Guia poo php

Programacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpProgramacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpSamuel Piñon Garcia
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetosJose Ney Quil
 
Programming oriented to objects
Programming oriented to objectsProgramming oriented to objects
Programming oriented to objects
Diego De Santiago Ruiz
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
Sterling Rafael Santana Vargas
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1Rokr02
 
Php orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald NinaPhp orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald Nina
Ronald Franz Nina Layme
 
Lab herencia
Lab herenciaLab herencia
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
ReinaldoGonzlez10
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
lhgarzonr
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Sergio Sanchez
 
Presentacion oop php5
Presentacion oop php5Presentacion oop php5
Presentacion oop php5
Javier López López
 
introducción a herencia programación orientada a objetos
introducción a herencia programación orientada a objetosintroducción a herencia programación orientada a objetos
introducción a herencia programación orientada a objetos
apssoftwaredegestion
 
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
yanburbano
 
Adentrándonos a PHP 5
Adentrándonos a PHP 5Adentrándonos a PHP 5
Adentrándonos a PHP 5
Rodrigo Miranda
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
Irving Trigo
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
Irving Trigo
 

Similar a Guia poo php (20)

Programacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpProgramacion Orientada a Objetos en php
Programacion Orientada a Objetos en php
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetos
 
Guia poo
Guia pooGuia poo
Guia poo
 
Guia poo
Guia pooGuia poo
Guia poo
 
Programming oriented to objects
Programming oriented to objectsProgramming oriented to objects
Programming oriented to objects
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Php orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald NinaPhp orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald Nina
 
Lab herencia
Lab herenciaLab herencia
Lab herencia
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Presentacion oop php5
Presentacion oop php5Presentacion oop php5
Presentacion oop php5
 
introducción a herencia programación orientada a objetos
introducción a herencia programación orientada a objetosintroducción a herencia programación orientada a objetos
introducción a herencia programación orientada a objetos
 
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
 
Adentrándonos a PHP 5
Adentrándonos a PHP 5Adentrándonos a PHP 5
Adentrándonos a PHP 5
 
Lp pract2006
Lp pract2006Lp pract2006
Lp pract2006
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 

Más de lissette_torrealba

Guia reportes
Guia reportesGuia reportes
Guia reportes
lissette_torrealba
 
Guiajquery
GuiajqueryGuiajquery
Guiajquery
lissette_torrealba
 
Plan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoríaPlan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoría
lissette_torrealba
 
Plan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodologíaPlan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodología
lissette_torrealba
 
Plan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 prácticaPlan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 práctica
lissette_torrealba
 
Guiajsvalidacion
GuiajsvalidacionGuiajsvalidacion
Guiajsvalidacion
lissette_torrealba
 
Guiajs2
Guiajs2Guiajs2
Rubrica 2021 electiva 2
Rubrica 2021 electiva 2Rubrica 2021 electiva 2
Rubrica 2021 electiva 2
lissette_torrealba
 
Mapa Tecnopedagogia
Mapa TecnopedagogiaMapa Tecnopedagogia
Mapa Tecnopedagogia
lissette_torrealba
 
Matriz DOFA lissette
Matriz DOFA lissetteMatriz DOFA lissette
Matriz DOFA lissette
lissette_torrealba
 
Planevaluacionproyectoivpractica
PlanevaluacionproyectoivpracticaPlanevaluacionproyectoivpractica
Planevaluacionproyectoivpractica
lissette_torrealba
 
Rubrica bd 2021
Rubrica  bd  2021Rubrica  bd  2021
Rubrica bd 2021
lissette_torrealba
 
Proyecto formativo iv metodologia
Proyecto formativo iv metodologiaProyecto formativo iv metodologia
Proyecto formativo iv metodologia
lissette_torrealba
 
Plan evaluacion teoria
Plan evaluacion teoriaPlan evaluacion teoria
Plan evaluacion teoria
lissette_torrealba
 
Plan de Evaluacion
Plan de EvaluacionPlan de Evaluacion
Plan de Evaluacion
lissette_torrealba
 
Ejemplos de interfaz grafica
Ejemplos de  interfaz grafica Ejemplos de  interfaz grafica
Ejemplos de interfaz grafica
lissette_torrealba
 
Rubrica bd 2021
Rubrica bd 2021 Rubrica bd 2021
Rubrica bd 2021
lissette_torrealba
 
Rubrica Programación II 2021
Rubrica Programación II 2021 Rubrica Programación II 2021
Rubrica Programación II 2021
lissette_torrealba
 
Rup
RupRup
Documentosistema
DocumentosistemaDocumentosistema
Documentosistema
lissette_torrealba
 

Más de lissette_torrealba (20)

Guia reportes
Guia reportesGuia reportes
Guia reportes
 
Guiajquery
GuiajqueryGuiajquery
Guiajquery
 
Plan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoríaPlan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoría
 
Plan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodologíaPlan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodología
 
Plan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 prácticaPlan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 práctica
 
Guiajsvalidacion
GuiajsvalidacionGuiajsvalidacion
Guiajsvalidacion
 
Guiajs2
Guiajs2Guiajs2
Guiajs2
 
Rubrica 2021 electiva 2
Rubrica 2021 electiva 2Rubrica 2021 electiva 2
Rubrica 2021 electiva 2
 
Mapa Tecnopedagogia
Mapa TecnopedagogiaMapa Tecnopedagogia
Mapa Tecnopedagogia
 
Matriz DOFA lissette
Matriz DOFA lissetteMatriz DOFA lissette
Matriz DOFA lissette
 
Planevaluacionproyectoivpractica
PlanevaluacionproyectoivpracticaPlanevaluacionproyectoivpractica
Planevaluacionproyectoivpractica
 
Rubrica bd 2021
Rubrica  bd  2021Rubrica  bd  2021
Rubrica bd 2021
 
Proyecto formativo iv metodologia
Proyecto formativo iv metodologiaProyecto formativo iv metodologia
Proyecto formativo iv metodologia
 
Plan evaluacion teoria
Plan evaluacion teoriaPlan evaluacion teoria
Plan evaluacion teoria
 
Plan de Evaluacion
Plan de EvaluacionPlan de Evaluacion
Plan de Evaluacion
 
Ejemplos de interfaz grafica
Ejemplos de  interfaz grafica Ejemplos de  interfaz grafica
Ejemplos de interfaz grafica
 
Rubrica bd 2021
Rubrica bd 2021 Rubrica bd 2021
Rubrica bd 2021
 
Rubrica Programación II 2021
Rubrica Programación II 2021 Rubrica Programación II 2021
Rubrica Programación II 2021
 
Rup
RupRup
Rup
 
Documentosistema
DocumentosistemaDocumentosistema
Documentosistema
 

Último

FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIAFUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
ElenaGallardoPals
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
jecgjv
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024
77361565
 
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Inteligencia Artificial para Docentes  HIA  Ccesa007.pdfInteligencia Artificial para Docentes  HIA  Ccesa007.pdf
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Demetrio Ccesa Rayme
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
teorema de pitagorasparalaeducacion.pptx
teorema de pitagorasparalaeducacion.pptxteorema de pitagorasparalaeducacion.pptx
teorema de pitagorasparalaeducacion.pptx
ElzebirQuiroga
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 

Último (20)

FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIAFUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024
 
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Inteligencia Artificial para Docentes  HIA  Ccesa007.pdfInteligencia Artificial para Docentes  HIA  Ccesa007.pdf
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
teorema de pitagorasparalaeducacion.pptx
teorema de pitagorasparalaeducacion.pptxteorema de pitagorasparalaeducacion.pptx
teorema de pitagorasparalaeducacion.pptx
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 

Guia poo php

  • 1. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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) { Introducción 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.
  • 2. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba //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:
  • 3. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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;
  • 4. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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 = "";
  • 5. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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
  • 6. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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”.
  • 7. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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">
  • 8. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba <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>
  • 9. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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
  • 10. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 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