PHP y Programación Orientada a Objetos (POO)

Hacía bastante tiempo que mis aplicaciones requerían áhorrar código y crear clases y objetos para aligerar un poco el proceso de creación. Habiendo profundizado ya en la programación lineal y estructurada, tenía que dar el salto a la POO para desarrollar proyectos personales y profesionales más eficientemente. Esto es, los CMS con los que desarrollo (Prestashop, WordPress, Drupal…) están programados con objetos y clases.

Encontré hace tiempo este interesante manual: Programación Orientada a Objetos PHP (felicitaciones y agradecimientos a su creador), y se quedó en los favoritos de mi explorador hasta hace unos días. Este post no es más que un resumen de los primeros cinco puntos del manual, con los ejercicios resueltos.

Introducción – Conceptos básicos

Ejercicio1.php – Crear una clase, definir métodos públicos y atributos privados, crear instancias

<html><head>
<title>Ejercicio1s</title>
</head><body>
<?php
class Empleado {
private $nombre;
private $sueldo;
public function inicializar($nom,$sue)
{ $this->nombre=$nom;
$this->sueldo=$sue; }
public function imprimir()
{ echo $this->nombre;
if ($this->sueldo>3000) {
echo » DEBE PAGAR»; }
else {
echo » NO DEBE PAGAR»;}
echo ‘<br>’;}
}

$impuestos1=new Empleado();
$impuestos1->inicializar(‘Alberto’, ‘5300’);
$impuestos1->imprimir();

$impuestos2=new Empleado();
$impuestos2->inicializar(‘Juana’, ‘1300’);
$impuestos2->imprimir();

?>
</body></html>

Ejercicio2.php – Uso de arrays como atributos

<html><head>
<title>Ejercicio2</title>
</head><body>
<?php
class Menu {
private $enlaces=array();
private $titulos=array();
public function cargarOpcion($en,$tit)
{ $this->enlaces[]=$en;
$this->titulos[]=$tit;  }
public function mostrar()
{   for($f=0;$f<count($this->enlaces);$f++)
{   echo ‘<a href=»‘.$this->enlaces[$f].'»>’.$this->titulos[$f].'</a>’;
echo «-«;   }
}
}

$menu1=new Menu();
$menu1->cargarOpcion(‘http://www.google.com’,’Google’);
$menu1->cargarOpcion(‘http://www.yahoo.com’,’Yhahoo’);
$menu1->cargarOpcion(‘http://www.msn.com’,’MSN’);
$menu1->mostrar();

?>
</body></html>

Ejercicio3.php – Un atributo css como atributo de clase – alineación y color de fondo 

<html><head>
<title>Ejercicio3</title>
</head><body>
<?php
class CabeceraPagina {
private $titulo;
private $ubicacion;
public function inicializar($tit,$ubi)
{  $this->titulo=$tit;
$this->ubicacion=$ubi;  }
public function graficar()
{  echo ‘<div style=»font-size:40px;text-align:’.$this->ubicacion.'»>’;
echo $this->titulo;
echo ‘</div>’;   }
}

$cabecera=new CabeceraPagina();
$cabecera->inicializar(‘El blog del programador’,’center’);
$cabecera->graficar();
?>
</body></html>

Ejercicio4.php – El método __contruct($var1,$var2…)

<html><head>
<title>Ejercicio4</title>
</head><body>
<?php
class CabeceraPagina {
private $titulo;
private $ubicacion;
private $colorfondo;
private $colorfuente;

public function __construct($tit,$ubi,$col1,$col2)
{
$this->titulo=$tit;
$this->ubicacion=$ubi;
$this->colorfondo=$col1;
$this->colorfuente=$col2;
}
public function graficar()
{
echo ‘<div style=»font-size:40px;text-align:’.$this->ubicacion.’;color:’.$this->colorfuente.’;background-color:’.$this->colorfondo.'»>’;
echo $this->titulo;
echo ‘</div>’;
}
}

$cabecera=new CabeceraPagina(‘El blog del programador’,’right’,’red’,’black’);
$cabecera->graficar();
?>
</body>
</html>

Write a Reply or Comment

Your email address will not be published.