SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (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
 

Similaire à 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 php
Samuel Piñon Garcia
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetos
Jose Ney Quil
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
Rokr02
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
Irving Trigo
 

Similaire à 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
 

Plus de lissette_torrealba

Plus 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
 

Dernier

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Dernier (20)

ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

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