Tema: Duda con POO
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/04/2014, 20:48
quico5
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Duda con POO

Hola, estoy intentando aprender como funciona la programación orientada a objetos y estoy algo perdido a la hora de extender una clase a otra, tengo dos clases ("Alerta e Imagen") y me gustaría extenderlas a Html, pero no veo en que tramos lo estoy haciendo mal

Lo que busco es que lo siguiente funcione
Código PHP:
            $Html=new Html();
            
$Html->alert('success','Éxito','Mensaje...','close');
            
$Html->alert('info','Información','Mensaje...','close');
            
$Html->image('https://www.google.es/images/srpr/logo11w.png','rounded');
            
$Html->image('https://www.google.es/images/srpr/logo11w.png','circle'); 
Código HTML:
<!DOCTYPE html>
<html lang="">
	<head>
		<title>Title Page</title>
		<meta charset="UTF-8">
		<meta name=description content="">
		<meta name=viewport content="width=device-width, initial-scale=1">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<!-- Bootstrap CSS -->
		<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
		<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
		<style>body {margin: 20px;}</style>
	</head>
	<body> 
Código PHP:
            class Alerta {
                
//success/info/warning/danger
                
private $alerta;
                public function 
alert($style$ttl$msg$close=null) {
                    if(isset(
$close)){$close="<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>\n";}
                echo 
$this->alerta="<div class=\"alert alert-$style alert-dismissable\">".$close."<strong>".ucwords($ttl)."!</strong> $msg</div>\n";
                }
            }
            class 
Imagen {
                
//rounded/circle/thumbnail
                
private $imagen;
                public function 
image($src$style) {
                    echo 
$this->imagen="<img src=\"$src\" alt=\"...\" class=\"img-$style\">";
                }
            }

            
$objAlerta=new Alerta();
            
$objAlerta->alert('success','Éxito','Mensaje...','close');
            
$objAlerta->alert('info','Información','Mensaje...','close');
            
$objImagen=new Imagen();
            
$objImagen->image('https://www.google.es/images/srpr/logo11w.png','circle');
            
            class 
Html extends Alerta {}
            class 
Html extends Imagen {}

            
$Html=new Html();
            
$Html->alert('success','Éxito','Mensaje...','close');
            
$Html->image('https://www.google.es/images/srpr/logo11w.png','circle'); 
Código HTML:
		<!-- jQuery -->
		<script src="//code.jquery.com/jquery.js"></script>
		<!-- Bootstrap JavaScript -->
		<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
	</body>
</html> 

Última edición por quico5; 01/04/2014 a las 21:29