Programação Orientada a Objectos e Acesso a Dados com PHP€¦ · –Recordatorio do linguagem...

Post on 13-Jul-2020

2 views 0 download

Transcript of Programação Orientada a Objectos e Acesso a Dados com PHP€¦ · –Recordatorio do linguagem...

Programação Orientada a

Objectos e Acesso a Dados

com PHP

Conferencia 10

MSc. Yoenis Pantoja Zaldívar

Programação Web

O modelo de objectos em PHP 5.

– Objectos

– Classes

– Encapsulamento, Herança, Polimorfismo

– Outras características

Os Bancos de Dados nos Aplicativos Web.

– Recordatorio do linguagem SQL.

– Acesso à PostgreSQL com PHP.

Resumo

Identificar as características da

Programação Orientada a Objectos no

linguagem PHP para desenvolver

Aplicativos Web robustos.

Identificar os pasos lógicos e as principais

funções do linguagem PHP para o acesso

a Bancos de Dados PostgreSQL.

Objectivos

GUTMANS, A., SÆTHER, S., y RETHANS, D.

PHP 5 Power Programming. 2005. Chapter 3.

Disponible en: http://progwebisutic.wordpress.com

JASON, W. y TREAT, R. Beginning PHP and

PostgreSQL 8. Capítulos 30 y 31. Disponible en:

http://progwebisutic.wordpress.com

PHP DOCUMENTATION GROUP. PHP Manual.

Disponible en: http://progwebisutic.wordpress.com

Bibliografía

Herança

Objecto

Classe

Polimorfismo

Proteção de

acesso

Atributo

Método

Conceitos básicos

Paradigma de programação que usa

objectos e suas relações, para desenhar

aplicativos e programas informáticos.

Baseado em varias técnicas como

herança, abstração, polimorfismo e

encapsulamento.

Programação Orientada à Objectos

Objecto: Entidad do problema (objecto do mundo real ou conceptual) com um identificador único, que tem um conjunto de propriedades que são definidas nos atributos e apresenta um comportamentoatravés dos métodos.

Classe: Plantilla para os objectos envolvidos num sistema, é o tipo de dado dos objectos que são instancias de ela.

Objectos e classes (em software)

class NomeDaClasse

{

// atributos e métodos

}

Classes: Declaração

É usada a palavra reservada class

Proteção de acesso

Existen três palavras clave (modificadores

de acesso):

public private protected

Para os atributos é preciso especificar o modificador de acesso.

Para os métodos pode obviarse e toma como valor public

class NomeDaClasse

{

// atributos

private $atributo1,

$atributo2;

}

Definição de atributos

Sempre é declarado o modificador de

acesso: private, protected o public

// acesso à um atributo desde um método

$this->atributo1;

Atributos: Acesso interno

É usada a variável $this e a notação ->

// Con dois ‘underscoard’ antes do palavra constructor

function __construct($a1, $a2) {

$this->atributo1 = $a1;

$this->atributo2 = $a2;

}

Métodos

O constructor de uma classe é um método

chamado __construct()

Herança: Comportamento através do qual

as classes filhas podem heredar, ou seja,

ter acesso tanto à os atributos como à os

métodos de uma classe pai.

Polimorfismo: Um objecto polimórfico é

uma entidad que pode conter valores de

diferentes tipos durante a ejecução do

programa.

Herança e polimorfismo

class ClasseFilha extends ClassePai {

private $b;

function __construct($a, $b) {

parent::__construct($a);

$this->b = $b;

}

}

Herança

É usada a palavra reservada extends

class ClassePai {

function MetodoX() {

// implementação

}

}

class ClasseFilha extends ClassePai {

function MetodoX() {

// implementação

}

}

Polimorfismo

class NomeDaClasse {

static function MetodoX() {

// implementação

}

}

// É invocado:

NomeDaClasse::MetodoX();

Atributos e métodos estáticos

É usada a palavra reservada static

$obj = new NomeDaClasse();

$obj->MetodoY();

Criar instancias de classes

É usada a palavra reservada new

Outros elementos

Uso de interfaces.

Operador instanceof.

Métodos e classes de tipo final.

Classes e métodos abstractos.

Classes reservadas self:: e parent::

Constantes de clase.

Função __autoload()

estudante

id

nome

ano

horasEstudo

evaluação

disciplina

estudantes

(txt)

¿Cómo obter a

evaluação dos

estudantes de 3ero ano

com menos de 5 horas

de estudo (na semana)?

Situação

Conjunto de dados que

pertenecem à um mesmo

contexto e armazenados

sistemáticamente para seu

posterior uso.

Banco de Dados (BD)

Banco de Dados Relacionais

Permitem relacionar varias tabelas de dados

entre sim, compartilhar a informação, evitar

a duplicidade dos dados e armazenar de

uma forma estruturada e eficiente toda a

informação de um Aplicativo Web.

Algumas BD que soporta PHP

MySQL PostgreSQLOracle

“Sistema de Gestão de Banco de Dados

relacional orientada a objectos de software

livre, publicado baixo a licença BSD”

PostgreSQL: Características

Máximo de banco de datos : ILIMITADO

Máximo de tamanho de tabela : 32TB

Máximo de tamanho de registro : 1.6TB

Máximo de tamanho de campo : 1GB

Máximo de registros por tabela : ILIMITADO

Máximo de campos por tabela : 250 a 1600

Máximo de índices por tabela : ILIMITADO

Web oficial: www.postgresql.org

PHP

Para a conexão de PHP à PostgreSQL é preciso ativar a extensão php_pgsql.dll

(ativar no php.ini) (ativar dinámicamente)

dl(‘php_pgsql.dll’);

PostgreSQL

SQL

LINGUAGEM DE CONSULTAS

ESTRUTURADO

(STRUCTURED QUERY

LANGUAGE)

SQL

Permite lanzar consultas para

Recuperar informação de interés de um BD de

forma fácil.

Fazer mudanças a os dados.

É um linguagem declarativo.

SQL

Linguagem de

Definição de

Dados (LDD)

(Data Definition

Language, DDL)

Linguagem de

Manipulaçao de

Dados (LMD)

(Data Manipulation

Language, o DML)

SELECT

-Selecciona registros de uma tabela-

SELECT expresión FROM tabla

[WHERE condición]

SQL

Exemplo

SELECT nome, avaliação FROM

tb_estudante WHERE horas_estudo < 5

INSERT

-adiciona um ou mais registros à uma (e

só uma) tabela-

INSERT

INTO tabela [(campo1, …, campoN)]

VALUES (valor1, …, valorN)

SQL

Exemplo

INSERT INTO tb_estudante (id, nome, ano,

horas_estudo, avaliação, disciplina)

VALUES (5, ‘Pepe’, 3, 8, 10, ‘ProgWeb’)

UPDATE

-modifica os valores de um conjunto de

registros existentes numa tabela-

UPDATE tabela

SET campo1 = valor1 [, campo2 =

valor2,…,]

[WHERE condição]

SQL

Exemplo

UPDATE tb_estudante SET horas_estudo =

6 WHERE nome = ‘Pedro’

DELETE

-apaga um ou mais registros existentes

numa tabela-

DELETE FROM tabela

[WHERE condição ]

SQL

Exemplo

DELETE FROM tb_estudante WHERE

nome = ‘Pepe’

ACESSO À BD

DESDE PHP

pg_connect pg_close

pg_querypg_fetch_assoc

pg_fetch_array

pg_fetch_all

pg_fetch_object

pg_num_rows

(TI)

1. Conectar com o Servidor de BD.

2. Executar a consulta SQL.

3. Obter e processar os resultados.

4. Fechar a conexão com o Servidor de BD.

Pasos para aceder à BD

1. Conectar com o Servidor.

$cadena_conexion = “host=localhost port=5432

dbname=bd_docencia user=usuario

password=clave”;

$con = pg_connect($cadena_conexion);

Acesso à PostgreSQL

2. Executar a consulta.

$sql = “SELECT nome, avaliação FROM

tb_estudante WHERE horas_estudo > 8”;

$res = pg_query($con, $sql);

Nota: $res é de tipo resource

Acesso à PostgreSQL

3. Obter e processar os resultados

$r = array();

while ($obj = pg_fetch_object($res)) {

$r[] =$obj;

}

foreach ($r as $e) {

echo “$e->nome : $e->avaliação<br/>”;

}

Acesso à PostgreSQL

3. Obter e processar os resultados

pg_fetch_assoc()

pg_fetch_row()

pg_fetch_object()

pg_affected_rows()

pg_num_rows()

* Consultar Manual de PHP

Acesso à PostgreSQL

4. Fechar a conexão de BD.

pg_close ($con);

Acesso à PostgreSQL

Programação Orientada a

Objectos e Acesso a Dados

com PHP

Conferencia 10

MSc. Yoenis Pantoja Zaldívar

Programação Web