Introducción a PHP

31
 Taller de Nuevas Tecnologías  Introducción a PHP Lic. Delía Lisandro [email protected]

description

Breve introduccion a PHP

Transcript of Introducción a PHP

  • Taller de Nuevas Tecnologas Introduccin a PHP

    Lic. Dela Lisandro [email protected]

  • PHP (HiperText Pre-Processor)

    - Lenguaje de alto nivel, de cdigo abierto, interpretado - Cdigo embebido en paginas html y ejecutado en el servidor - Manual: http://www.php.net/manual/en/

  • PHP (HiperText Pre-Processor)

    -Ejemplo: Formulario HTML y procesamiento PHP

    Ejemplo de uso simple en envo y recepcin de parmetros con PHP Cul es tu nombre? Cul es tu comida favorita? Spaguetis Asado Pizza

  • PHP (HiperText Pre-Processor)

    -Ejemplo: Formulario HTML y procesamiento PHP

    Ejemplo de uso simple en envo y recepcin de parmetros con PHP

  • PHP (HiperText Pre-Processor)

    if/else

  • PHP (HiperText Pre-Processor)

    switch

    Estructuras de control

  • PHP (HiperText Pre-Processor)

    while

    For

    Estructuras de control

    Do/while

  • PHP (HiperText Pre-Processor)

    No se requiere definicin de tipos en la declaracin de variables

    El tipo de una variable es determinado por el contexto en el que la variable es usada

    Si a una variable se le asigna un valor string el tipo de la variable ser string

    Si luego a esa variable se le asigna un valor entero, el tipo de la variable se convertir a entero

    Tipos de datos

  • PHP (HiperText Pre-Processor)

    Boolean Valores: true, false

    Enteros

    $a = 1234; // nmero decimal $a = -123; // nmero negativo $a = 0123; // nmero octal $a = A4FC9; // nmero hexadecimal

    Flotantes

    $a = 1.234; $b = 1.2e3; $c = 7E-10;

    Tipos de datos

  • PHP (HiperText Pre-Processor)

    Strings

    Comillas dobles

    Echo Cadena de caracteres; Echo Las variables se {$expanden} Echo Las posiciones de arrays se {$expanden[apellido]}

    Comillas simples

    Echo Cadena de caracteres; Echo Las variables NO se {$expanden} Echo Las posiciones de arrays NO se {$expanden[apellido]}

    Tipos de datos

  • PHP (HiperText Pre-Processor)

    Arrays

    Clave -> string o integer Valor -> cualquier tipo/objeto $vector = array(foo => bar, 12 => true); Echo $vector[foo];

    $vector = array(); $vector[] = 50;

    print_r( $vector );

    Listado completo de funciones para arrays:

    http://www.php.net/manual/en/ref.array.php

    Tipos de datos

  • PHP (HiperText Pre-Processor)

    Se definen por medio de la funcin define()

    No pueden ser modificadas ni eliminadas

    define(Constante, Hola Mundo); Echo Constante;

    Para saber si una constante esta definida:

    If (defined(Constante)) { echo Constante; }

    Constantes

  • PHP - Funciones Funciones

    Funciones de funciones

  • PHP - Parmetros

    Por valor Por referencia

    Parmetros por defecto

  • PHP - Clases

  • PHP - Herencia

  • PHP Constructor / Destructor
  • PHP Visibilidad de propiedades y mtodos

    class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj = new MyClass(); echo $obj->public; // Works echo $obj->protected; // Fatal Error echo $obj->private; // Fatal Error $obj->printHello(); // Shows Public, Protected and Private

  • PHP Clases Abstractas

  • Interface Permite especificar qu mtodos deben ser implementados por una clase ( no su comportamiento )

    Son definidas utilizando la palabra clave interface Todos los mtodos declarados en una interfaz deben ser public, ya que sta es la naturaleza de una interfaz.

    La clase que implemente una interfaz debe utilizar exactamente las mismas estructuras de mtodos que fueron definidos en la interfaz. De no cumplir con esta regla, se generar un error fatal.

    Para indicar que una clase implementa una interfaz, se utiliza el operador implements. Las clases pueden implementar ms de una interfaz si se deseara, separndolas cada una por una coma.

  • Interface interface animal { function breath(); function eat(); }

    class dog implements animal{

    function breath() { echo dog is breathing ; }

    function eat() { echo dog is easting ; }

    }

  • Interface vs Clases Abstractas Una interfaz no contiene atributos ni mtodos implementados, mientras que una clase abstracta s

    Una clase slo puede heredar una clase abstracta, mientras que en una misma clase se pueden implementar varias interfaces.

    Las clases abstractas pueden declarar los mtodos con diferente visibilidad (public, protected ), mientras que en las interfaces todos los mtodos deben ser pblicos

    Los mtodos que no implementamos en una clase abstracta, deben ser abstract, en un interface, todos los mtodos son abstract, y ninguno debe ser implementado.

  • Interface Ejemplo Parte 1

    interface Observer { public function update(Observable $subject); }

    interface Observable { public function attachObserver(Observer $dependent); public function detachObserver(Observer $dependent); public function notify(); }

  • Interface Ejemplo Parte 2 class Account implements Observable { public $status; private $_observers = array();

    public function __construct() { $this->attachObserver(new Logger()); $this->attachObserver(new Mailer()); }

    public function attachObserver(Observer $object) { $this->_observers[] = $object; }

    public function detachObserver(Observer $object) { foreach ($this->_observers as $index => $observer) { if ($object == $observer) { unset($this->_observers[$index]); } } }

  • Interface Ejemplo Parte 3 public function notify() { foreach ($this->_observers as $observer) { $observer->update($this); } }

    public function save() { $this->notify(); } }

  • Interface Ejemplo Parte 4 class Logger implements Observer { public function update(Observable $subject) { echo "Updating status in log table.\n"; } }

    class Mailer implements Observer { public function update(Observable $subject) { switch (get_class($subject)) { case "Account": if ($subject->status == "Expired") { echo "Sending account expired email.\n"; } } } }

  • Namespaces Encapsulan elementos

    Ej: en un sistema operativo los directorios sirven para agrupar archivos relacionados, y actuan como espacios de nombres para los archivos que hay en ellos

    Evita colisiones entre el cdigo que nosotros creamos y clases/funciones/constantes internas de PHP o de terceras partes

  • Namespaces Ej: file1.php

  • Namespaces Ej: file2.php

  • PHP - Session

    Permite almacenar valores a lo largo de subsiguientes accesos.

    Cada visitante del sitio tiene asignado un id nica

    Cuando una persona accede al sitio web, PHP intenta recuperar el estado de la sesin

    Las variables registradas en la sesin se serializan al termino de cada request

    Referencia de funciones http://www.php.net/manual/en/ref.session.php

  • PHP - Session

    Registro de variables de la sesin

    Eliminacin de las variables de la sesin