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