php 5.0 avanzado - .php 5.0 avanzado contenido 1 ... 18.2 uso básico de simplexml ... claves...

Download PHP 5.0 Avanzado - .PHP 5.0 AVANZADO Contenido 1 ... 18.2 Uso básico de SimpleXML ... claves public,

Post on 11-Oct-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Luis Salvador

    HTTP://PHP.NET/MANUAL/ES cec-epn

    PHP 5.0 AVANZADO

  • pg. 1

    PHP 5.0 AVANZADO

    Contenido 1 Introduccin .................................................................................................................... 2

    2 Lo bsico ......................................................................................................................... 2

    2.1 Class ......................................................................................................................... 2

    2.2 New .......................................................................................................................... 4

    2.3 extends ..................................................................................................................... 6

    3 Propiedades ..................................................................................................................... 6

    4 Constructores y destructores ........................................................................................... 7

    4.1 Constructor ............................................................................................................... 7

    4.2 Destructor ................................................................................................................. 9

    5 Visibilidad ....................................................................................................................... 9

    5.1 Visibilidad de Propiedades .................................................................................... 10

    5.2 Visibilidad de Mtodos .......................................................................................... 11

    5.3 Visibilidad desde otros objetos .............................................................................. 12

    6 Herencia de Objetos ...................................................................................................... 13

    7 Operador de Resolucin de mbito (::) ........................................................................ 14

    8 La palabra reservada 'static' ........................................................................................... 16

    9 Abstraccin de clases .................................................................................................... 17

    10 Sobrecarga ................................................................................................................. 20

    10.1 Historial de cambios .............................................................................................. 20

    10.2 Sobrecarga de propiedades .................................................................................... 20

    10.3 Sobrecarga de mtodos .......................................................................................... 23

    11 Interfaces de objetos .................................................................................................. 24

    11.1 Implements ............................................................................................................. 24

    11.2 Constantes .............................................................................................................. 25

    12 Iteracin de objetos .................................................................................................... 27

    13 Palabra clave Final .................................................................................................... 31

    14 Clonacin de Objetos ................................................................................................ 32

    15 Comparacin de Objetos ........................................................................................... 34

    16 Declaracin de tipos .................................................................................................. 36

    17 Patrones de Diseo .................................................................................................... 38

  • pg. 2

    PHP 5.0 AVANZADO

    17.1 Patrn de diseo Observer ..................................................................................... 38

    17.2 Patrn de diseo MVC (Modelo, Vista, Controlador) ........................................... 40

    17.3 Desarrollo del Modelo ........................................................................................... 41

    17.4 Desarrollo de las Vistas ......................................................................................... 51

    17.5 Desarrollo del Controlador .................................................................................... 54

    18 Manipulacin de XML .............................................................................................. 57

    18.1 SimpleXML ........................................................................................................... 57

    18.2 Uso bsico de SimpleXML .................................................................................... 57

    18.3 Tratar con los errores XML ................................................................................... 63

    18.4 Desarrollo de un Servidor ...................................................................................... 66

    18.5 Desarrollo de un Consumidor ................................................................................ 69

    19 Uso de Ajax ............................................................................................................... 70

    19.1 Uso bsico de Ajax ................................................................................................ 70

    1 Introduccin

    A partir de PHP 5, el modelo de objetos ha sido reescrito para mejorar el rendimiento y

    permitir mayor funcionalidad. Este fue un cambio importante a partir de PHP 4. PHP 5 tiene

    un modelo de objetos completo.

    Entre las caractersticas de PHP 5 estn la inclusin de la visibilidad, clases y mtodos

    abstractos y finales, mtodos mgicos adicionales, interfaces, clonacin y determinacin de

    tipos.

    PHP trata los objetos de la misma manera que las referencias o manejadores, lo que significa

    que cada variable contiene una referencia a un objeto en lugar de una copia de todo el objeto.

    2 Lo bsico 2.1 Class

    La definicin bsica de una clase comienza con la palabra reservada class, seguido de un

    nombre de clase, y continuando con un par de llaves que encierran las definiciones de las

    propiedades y mtodos pertenecientes a dicha clase.

    http://php.net/manual/es/language.oop5.basic.php#language.oop5.basichttp://php.net/manual/es/language.oop5.basic.php#language.oop5.basic
  • pg. 3

    PHP 5.0 AVANZADO

    El nombre de clase puede ser cualquier etiqueta vlida, siempre que no sea una palabra

    reservada de PHP. Un nombre vlido de clase comienza con una letra o un guin bajo,

    seguido de una cantidad arbitraria de letras, nmeros o guiones bajos. Como expresin

    regular, se expresara de la siguiente forma: ^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$.

    Una clase puede tener sus propias constantes, variables (llamadas "propiedades"), y

    funciones (llamados "mtodos").

    Ejemplo #1 Definicin de una clase sencilla

    La pseudovariable $this est disponible cuando un mtodo es invocado dentro del contexto

    de un objeto. $this es una referencia al objeto invocador (usualmente el objeto al cual el

    mtodo pertenece, aunque puede que sea otro objeto si el mtodo es llamado estticamente

    desde el contexto de un objeto secundario).

    Ejemplo #2 Algunos ejemplos de la pseudovariable $this

  • pg. 4

    PHP 5.0 AVANZADO

    }

    $a = new A();

    $a->foo();

    // Nota: la siguiente lnea arrojar una advertencia si E_STRICT es

    t habilitado.

    A::foo();

    $b = new B();

    $b->bar();

    // Nota: la siguiente lnea arrojar una advertencia si E_STRICT es

    t habilitado.

    B::bar();

    ?>

    El resultado del ejemplo sera:

    $this est definida (A)

    $this no est definida.

    $this est definida (B)

    $this no est definida.

    2.2 New

    Para crear una instancia de una clase, se debe emplear la palabra reservada new. Un objeto

    se crear siempre a menos que el objeto tenga un constructor que arroje una excepcin en

    caso de error. Las clases deberan ser definidas antes de la instanciacin (y en algunos casos

    esto es un requerimiento).

    Si se emplea un string que contenga el nombre de una clase con new, se crear una nueva

    instancia de esa clase. Si la clase estuviera en un espacio de nombres, se debe utilizar su

    nombre completo al realizar esto.

    Ejemplo #3 Creacin de una instancia

    En el contexto de una clase, es posible crear un nuevo objeto con new self y new parent.

    Cuando se asigna una instancia ya creada de una clase a una nueva variable, sta ltima

    acceder a la misma instancia que el objeto que le fue asignado. Esta conducta es la misma

    que cuando se pasan instancias a una funcin. Se puede realizar una copia de un objeto ya

    creado a travs de la clonacin del mismo.

  • pg. 5

    PHP 5.0 AVANZADO

    Ejemplo #4 Asignacin de objetos

    El resultado del ejemplo sera:

    NULL

    NULL

    object(ClaseSencilla)#1 (1) {

    ["var"]=>

    string(27) "$asignada tendr este valor"

    }

    PHP 5.3.0 introdujo un par de formas nuevas para crear instancias de un objeto:

    Ejemplo #5 Creacin de nuevos objetos

  • pg. 6

    PHP 5.0 AVANZADO

    El resultado del ejemplo sera:

    b