Ejemplo herencia en PHP


class Producto {

public $nombre;
public $precio;

function __construct($nombre, $precio = 0) {
$this->nombre = $nombre;
$this->precio = $precio;
}

function resumen() {
return $this->nombre . " " . $this->precio;
}

function pvp() {
return $this->precio * 1.21;
}

}

class Cd extends Producto {
public $longitud;
}

$nuevoCd=new Cd('Reggeton mix');
$nuevoCd->longitud=90;
$nuevoCd->precio=20;
var_dump($nuevoCd);

//Crear una clase libro con propiedad páginas que derive de producto

class Libro extends Producto{
public $paginas;
//Sobreescribir el constructor añadiendo el parámetro páginas
function __construct($nombre, $paginas, $precio = 0) {
parent::__construct($nombre, $precio);
$this->paginas=$paginas;
}
//Sobreescribimos el método de la clase madre
function resumen(){
//Invocamos el método de la clase madre
return parent::resumen()." ".$this->paginas;
}
}

class LibroAntiguo extends Libro{
public $anyo;
function __construct($nombre, $paginas,$anyo, $precio = 0) {
parent::__construct($nombre, $paginas, $precio);
$this->anyo=$anyo;
}
}

$nuevoLibro=new Libro('El Quijote',400);

echo $nuevoLibro->resumen();
$antiguo=new LibroAntiguo('Quijote',500,1754);
echo $antiguo->resumen();

Subir imágenes a Symfony

La plantilla:

   <form action="areas/imagen" method="post" enctype="multipart/form-data">
        <input type="file" name="imagen"><br/>
        <input type="submit">
    </form>

El controlador:

 /**
     * @Route("/areas/imagen", name="imagen")
     */
    public function imagen() {
        $destino= $this->get('kernel')->getProjectDir()."/public/upload";
        $request = Request::createFromGlobals();
        $archivo = $request->files->get('imagen');
        $archivo->move($destino,$archivo->getClientOriginalName());
        return $this->render('areas/index.html.twig');
    }