Qué es composer:
https://styde.net/que-es-composer-y-como-usarlo/
Página oficial:
Instrucciones paso a paso:
Qué es composer:
https://styde.net/que-es-composer-y-como-usarlo/
Página oficial:
Instrucciones paso a paso:
<?php class Sakila { private $server = "localhost"; private $user = "root"; private $password = ""; private $db = "sakila"; private $conn; function __construct() { try { $this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $this->conn->exec("SET CHARACTER SET utf8"); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } } /** * Inserta un nuevo actor o devuelve el id si ya existe * @param string valor de first_name * @param string valor de last_name * @return int id */ function newActor($first_name, $last_name) { if (!empty($first_name) && !empty($last_name)) { $sql = "select * from actor where first_name='$first_name' and last_name='$last_name'"; $c = $this->conn->query($sql); if ($actor = $c->fetch()) { return $actor['actor_id']; } $sql = "insert into actor (first_name,last_name) values ('$first_name','$last_name')"; $this->conn->exec($sql); return $this->conn->lastInsertId(); } else { return null; } } /** * Inserta una película en una categoría * @param int id de la categoría * @param string título de la película */ function newFilm($category_id, $film) { $sql = "insert into film(title,language_id) values ('$film',1)"; $this->conn->exec($sql); $film_id = $this->conn->lastInsertId(); $sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)"; $this->conn->exec($sql); } /** * Crea un select con todas las categorías */ function selectCategory() { $sql = "select * from category"; $q = $this->conn->query($sql); $categorias = $q->fetchAll(); ?> <select name="category"> <?php foreach ($categorias as $categoria) { ?> <option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option> <?php } ?> </select> <?php } }
sakila.php
<?php class Sakila { private $server = "localhost"; private $user = "root"; private $password = ""; private $db = "sakila"; private $conn; function __construct() { try { $this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $this->conn->exec("SET CHARACTER SET utf8"); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } } function newFilm($category_id, $film) { $sql = "insert into film(title,language_id) values ('$film',1)"; $this->conn->exec($sql); $film_id = $this->conn->lastInsertId(); $sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)"; $this->conn->exec($sql); } function selectCategory() { $sql = "select * from category"; $q = $this->conn->query($sql); $categorias = $q->fetchAll(); ?> <select name="category"> <?php foreach ($categorias as $categoria) { ?> <option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option> <?php } ?> </select> <?php } }
index.php
<?php include "sakila.php"; $sakila = new Sakila(); $category = filter_input(INPUT_GET, "category", FILTER_VALIDATE_INT); $film = filter_input(INPUT_GET, "film"); if (!empty($category) && !empty($film)) { $sakila->newFilm($category, $film); } ?> <form> Categoría: <?php $sakila->selectCategory(); ?> <br/> Película: <input type="text" name="film"><br/> <input type="submit"> </form>
<?php $server = "localhost"; $user = "root"; $password = ""; $db = "sakila"; try { $conn = new PDO("mysql:host=$server;dbname=$db", $user, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $conn->exec("SET CHARACTER SET utf8"); $category = filter_input(INPUT_GET, "category", FILTER_VALIDATE_INT); $film = filter_input(INPUT_GET, "film"); if (!empty($category) && !empty($film)) { $sql="insert into film(title,language_id) values ('$film',1)"; $conn->exec($sql); $film_id=$conn->lastInsertId(); $sql="insert into film_category(film_id,category_id) values($film_id,$category)"; $conn->exec($sql); } $sql = "select * from category"; $q = $conn->query($sql); $categorias = $q->fetchAll(); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> <form> Categoría: <select name="category"> <?php foreach ($categorias as $categoria) { ?> <option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option> <?php } ?> </select> <br/> Película: <input type="text" name="film"><br/> <input type="submit"> </form>
<?php class Empleado { private $nombre; private $sueldo; function __construct($nombre, $sueldo) { $this->nombre = $nombre; } function paga() { return $this->sueldo / 12; } public function __get($propiedad) { if (property_exists($this, $propiedad)) { return $this->$propiedad; } else { throw new Exception("No existe la propiedad"); } } public function __set($property, $value) { if (property_exists($this, $property)) { if ($property == "sueldo") { if ($value > 600) { $this->sueldo = $value; } else { throw new Exception("Sueldo debe ser > 600"); } } elseif (!empty($value)) { $this->$property = $value; } } } } class comercial extends empleado { private $comision = .1; protected $ventas; public function __construct($nombre, $sueldo, $ventas) { parent::__construct($nombre, $sueldo); $this->ventas = $ventas; } function paga() { $p = parent::paga(); return $p + $this->ventas * $this->comision / 12; } }
index.php
$juan = new Empleado("Juan", 300); $p=new comercial("Juasdan", 300,9000); echo $p->nombre; echo $p->paga(); try { $juan->sueldo = 6000; echo $juan->sueldo; echo $juan->paga(); } catch (Exception $error) { echo $error->getMessage(); }
cesta.php:
<?php class cesta { private $cesta = []; function anyadir($producto,$precio){ $this->cesta[]=['producto'=>$producto,'precio'=>$precio]; } function verCesta() { ?> <table border="1"> <tr><td>Producto</td><td>Precio</td></tr> <?php foreach ($this->cesta as $elemento) { ?> <tr><td><?= $elemento['producto'] ?></td><td><?= $elemento['precio'] ?></td> </tr> <?php } ?> </table> <?php } }
index.php
<?php include_once "cesta.php"; session_start(); if (!isset($_SESSION['cesta'])) { $_SESSION['cesta'] = new cesta(); } $producto = filter_input(INPUT_GET, 'producto'); $precio = filter_input(INPUT_GET, 'precio', FILTER_VALIDATE_INT); if (!empty($producto) && !empty($precio)) { $_SESSION['cesta']->anyadir($producto, $precio); } $_SESSION['cesta']->verCesta(); ?> <form> <p>Producto:<input type="text" name="producto"></p> <p>Precio:<input type="text" name="precio"></p> <input type="submit"> </form>
<?php class ClaseSencilla { // Declaración de una propiedad public $var = 'un valor predeterminado'; static $nombre = "Clase"; // Declaración de un método public function mostrarVar() { echo $this->var; } public function __construct($var = "Instancia por defecto") { $this->var = $var; } public function __destruct() { //Si hay algo que destruir } static function hola() { echo "Hola que tal"; } } ClaseSencilla::hola(); echo ClaseSencilla::$nombre; class MyClass { protected function myFunc() { echo "MyClass::myFunc()\n"; } } class OtherClass extends MyClass { // Sobrescritura de definición parent public function myFunc() { // Pero todavía se puede llamar a la función parent parent::myFunc(); echo "OtherClass::myFunc()\n"; } } $class = new OtherClass(); $class->myFunc(); ?>
<?php class ClaseSencilla { // Declaración de una propiedad public $var = 'un valor predeterminado'; // Declaración de un método public function mostrarVar() { echo $this->var; } public function __construct($var = "Instancia por defecto") { $this->var = $var; } public function __destruct() { //Si hay algo que destruir } } $instancia = new ClaseSencilla("Instancia 1"); $instancia->mostrarVar(); $otraInstancia = new ClaseSencilla("Instancia 2"); $otraInstancia->mostrarVar(); $otraMas = new ClaseSencilla(); $otraMas->mostrarVar(); //Visibilidad /** * Definición de MyClass */ class MyClass { public $variablePublica = 'Public'; protected $variableProtegida = 'Protected'; private $variablePrivada = 'Private'; function printHello() { echo $this->variablePublica; echo $this->variableProtegida; echo $this->variablePrivada; } } $obj = new MyClass(); echo $obj->variablePublica; // Funciona bien //echo $obj->variableProtegida; // Error Fatal //echo $obj->variablePrivada; // Error Fatal $obj->printHello(); // Muestra Public, Protected y Private /** * Definición de MyClass2 */ class MyClass2 extends MyClass { // Se pueden redeclarar las propiedades pública y protegida, pero no la privada public $public = 'Public2'; //protected $protected = 'Protected2'; function printHello() { echo $this->public; echo $this->protected; // echo $this->private; // Undefined } } $obj2 = new MyClass2(); echo $obj2->public; // Funciona bien //echo $obj2->protected; // Error Fatal //echo $obj2->private; // Undefined $obj2->printHello(); // Muestra Public2, Protected2, Undefined ?>
funciones.php
function verCesta($cesta) { ?> <table border="1"> <tr><td>Producto</td><td>Precio</td></tr> <?php foreach ($cesta as $elemento) { ?> <tr><td><?= $elemento['producto'] ?></td><td><?= $elemento['precio'] ?></td> </tr> <?php } ?> </table> <?php }
index.php
<?php include_once "funciones.php"; session_start(); $producto = filter_input(INPUT_GET, 'producto'); $precio = filter_input(INPUT_GET, 'precio'); if (!empty($producto) && !empty($precio)) { $_SESSION['cesta'][] = ['producto' => $producto, 'precio' => $precio]; } if (isset($_SESSION['cesta'])) { verCesta($_SESSION['cesta']); } ?> <form> <p>Producto:<input type="text" name="producto"></p> <p>Precio:<input type="text" name="precio"></p> <input type="submit"> </form>