Sunteți pe pagina 1din 32

PROGRAMACIN WEB

Modelo Cliente - Servidor

Servidor
Apache
Apache Tomcat Internet Information Services

Cliente

Orientado a Objetos

Introduccin
PHP es un lenguaje de scripting para programacin del servidor (server-side scripting). El significado de sus siglas es HyperText Preprocessor. Entre sus principales caractersticas cabe destacar su potencia, su alto rendimiento, su facilidad de aprendizaje y su escasez de consumo de recursos.

Lenguaje PHP
La insercin de PHP en HTML se hace mediante etiquetas especiales: <? .... ?> Slo si se activa la funcin short_tags() o la bandera de configuracin short_open_tag. <?php .... ?> <script languaje="php"> .... </script> <% .... %> Slo si se activan las etiquetas para ficheros 'asp' con la bandera de configuracin asp_tags. Las instrucciones se separan con ';', en el caso de ser la ltima instruccin no es necesario el punto y coma.

Proceso de una Peticin al Servidor


El navegador del cliente solicita el documento PHP.

Llega la solicitud del servidor y el servidor localiza el documento, lanza el intrprete de PHP y ejecuta todo su cdigo.
Una vez ejecutado el cdigo se genera el resultado en HTML y lo devuelve al servidor para que lo transfiera al cliente. El servidor transfiere el resultado en HTML y es mostrado en el navegador del cliente.

POO en PHP
Una clase es un tipo de datos que define el estado y el comportamiento de los objetos que se instancian a partir de ellas. Contiene un conjunto de atributos/propiedades/campos y un conjunto de funciones/mtodos/operaciones.

PHP: Clase
En PHP las clases se crean utilizando la palabra clave reservada class:

class nombreClase { //codigo de la clase }

PHP: Modificadores de Acceso


En PHP desde la versin 5, se agregaron los modificadores de acceso public, protected y private tpicos de los lenguajes orientados a objetos.

ACCESO PUBLICO

Si no especificamos ningn modificador de acceso, por defecto las variables y funciones son public, es decir, son accesibles desde dentro y fuera del objeto.

public $atributo_publico; $atributo_publico; public function nombredefuncion(){} function nombredefuncion(){}

PHP: ACCESO PRIVATE


Las variables y funciones declaradas como private solo son accesibles dentro de la clase. Las clases que hereden de ella tampoco tendrn acceso a las variables y funciones declaradas con el modificador de acceso private.

private $atributo_protegido; private function nombredefuncion(){}

PHP: ACCESO PROTECTED


Si queremos que las variables y las funciones sean accesibles tambin para las clases que heredan pero que no se puedan manipular desde fuera podemos declararlas con el modificador de acceso protected. protected $atributo_protegido; protected function nombredefuncion(){}

PHP: CONSTRUCT Y DESTRUCT


Existe un conjunto de funciones especiales en la definicion de una clase. Una de ellas es el constructor de la clase. Cada vez que creemos/instanciemos un objeto se llama al constructor de la clase que es el encargado de inicializar los atributos del objeto. En versiones anteriores de PHP la funcin constructora se llamaba igual que el nombre de la clase. A partir de PHP5 se utiliza el nombre __construct(). Si en una clase no se encuentra una funcin con este nombre PHP buscar una funcin con el mismo nombre que la clase. class nombreClase { private $atributo_privado; function __construct($param1, $param2, $param3) { $this->atributo_privado=$param1; echo 'Constructor de la clase'; } }

PHP: CONSTRUCT Y DESTRUCT


Otra de las funciones especiales de clase es el destructor. Su tarea es lo contrario al constructor. Esta funcin se ejecuta cada vez que se destruye un objeto, lo que ocurre cuando se eliminan todas las referencias al objeto. Los destructores no aceptan parmetros.

class nombreClase { function __destruct(){ echo 'Constructor de la clase'; } }

PHP: Atributos y funciones de clase


Podemos utilizar los atributos y las funciones de clase dentro de nuestra clase. Para referirnos a ella contamos con la pseudovariable $this que hace referencia a la propia clase. Class nombreClase{ $this->atributos_de_clase; $this->funcion_de_clase(); }
Diferentes Atributos Marca Color Modelo Pantalla

Mtodos como: Llamar Colgar Llamada en Espera

PHP: Constantes de clase


En PHP5 podemos crear constantes en una clase pudiendo acceder a ella desde fuera de la clase sin la necesidad de instanciar un objeto. Las constantes se crean con la palabra reservada const. class Matematicas{ const pi = 3.1416; const e = 2.7182; } echo Matematicas::pi.' '.Matematicas::e;

PHP: Mtodos estticos


En PHP5 podemos crear mtodos estticos y acceder a ellos sin la necesidad de instanciar un objeto. Cabe destacar que no podemos acceder a las constantes ni a los mtodos estticos con la pseudo-variable $this. Para poder acceder a ellas dentro de una clase utilizamos la pseudo-variable self::nombreConstante o self::nombreFuncion(). Por ltimo decir que dentro del cuerpo de una funcin esttica solo podemos utilizar variables estticas, no variables de clase. class Matematicas { public function cuadrado_dos(){ return self::cuadrado(2); }

public static function cuadrado($numero){ return $numero*$numero; }

}
echo Matematicas::cuadrado(5);

PHP: Mtodos estticos


La clase por s sola no realiza nada, no es ms que una plantilla con la que podemos crear/instanciar objetos. En PHP los objetos se instancian con el operador new seguido del nombre de la clase. A continuacin entre parntesis todos los parmetros que sean necesarios suministrar al constructor.
$variable_objeto = new nombreClase($param1, $param2, $param3); $variable_objeto->operacion2();

PHP: Herencia
La herencia nos permite crear una relacin jerrquica entre las clases. La clase hija o subclase se comporta de la siguiente manera: Hereda automticamente todas las variables y funciones miembros de la clase padre que tengan un modificador de acceso public y protected. Puede definir nuevas variables y funciones, as como reescribir variables y funciones de la clase padre siempre que no se hayan declarado como finales. Puede acceder a las variables y funciones de la clase padre mediante la pseudo-variable parent::. Si la clase padre se ha declarado como final no se podr heredar una subclase.

class Subclase extends Superclase { }

PHP: Interfaces
PHP no permite la herencia mltiple, es decir, poder crear una subclase a partir de varias superclases. Pero se puede simular su comportamiento si utilizamos las interfaces. Una interfaz no es ms que la declaracin de un conjunto de constantes y funciones que deben ser definidas en la clase que implemente dicha interfaz.
interface Listar{ function listar_nombre(); }

class Ejemplo implements Listar{ function listar_nombre(){ echo 'Francisco'; } }

PHP: Clases abstractas


PHP5 tambin incluye el concepto de clases abstractas tpicas de otros lenguajes orientados a objetos. Una clase abstracta no puede ser instanciada, sirve como clase base para que otras hereden de ella. Una clase abstracta define una serie de funciones abstractas que no tienen implementacin. Las clases que hereden de una clase abstracta tendrn que implementar esas funciones, sino automticamente se convierten en clases abstractas.
abstract class Persona{ protected $nombre; protected $apellidos;
abstract function calcular_salario(); } class Director extends Persona{

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


function calcular_salario() { return 10000; } }

PDO ( PHP Data Objects)

La extensin PHP Data Objects (PDO) define un interfaz ligera, para tener acceso a bases de datos en PHP. Cada controlador de base de datos que implementa la interfaz PDO puede exponer base de datos especficas como funciones de extensin regular.

Controladores
Los siguientes controladores actualmente implementan la interfaz PDO: PDO_DBLIB: FreeTDS / Microsoft SQL Server / Sybase PDO_FIREBIRD: Firebird / Interbase 6 PDO_IBM: IBM DB2 PDO_INFORMIX: IBM Informix Dynamic Server PDO_MYSQL: MySQL 3.x/4.x/5.x PDO_OCI: Oracle Call Interface PDO_ODBC: ODBC v3 (IBM DB2, unixODBC y win32 ODBC) PDO_PGSQL: PostgreSQL PDO_SQLITE: SQLite 3 y SQLite 2

Trabajar con PDO


Para trabajar con PDO se debe verificar que la extensin se encuentre activa, para esto crearemos un script con las siguientes instrucciones:
PDO habilitado <?php foreach(PDO::getAvailableDrivers() as $driver){ echo $driver."<br>"; } ?>

PDO no habilitado

Habilitar extensin PDO


Si se desea habilitar un controlador PDO se debe de ir al archivo php.ini, en el cual en su parte de extensiones como lo vemos en el lado izquierdo, muestra los diferentes controladores de PDO activos, si se desea activar alguno solo des comente quitando el ; y reinicie el servidor apache.
Extensin de PDO

Extensin de los diferentes controladores

Acceso a bases de datos en PHP5 con PDO

La extensin php_pdo para el trabajo con bases de datos est compuesta por tres clases:

PDO: Representa una conexin entre PHP y un servidor de bases de datos.


PDOStatement: Representa una instruccin preparada y despus que la instruccin es ejecutada, una resultset.

PDOException: Representa un error lanzado por PDO.

Ejemplos con PDO Conexin a Postgresql

Conexin a Mysql

Resultados de los Scripts


Mysql Postgresql

S-ar putea să vă placă și