Programação Web Programação Orientada a Objectos e Acesso a Dados com PHP Conferencia 10 MSc. Yoenis Pantoja Zaldívar
Resumo 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.
Objectivos 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.
Bibliografía 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
Conceitos básicos Objecto Classe Proteção de acesso Atributo Herança Método Polimorfismo
Programação Orientada à Objectos 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.
Objectos e classes (em software) 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 comportamento através dos métodos. Classe: Plantilla para os objectos envolvidos num sistema, é o tipo de dado dos objectos que são instancias de ela.
Classes: Declaração É usada a palavra reservada class class NomeDaClasse { // atributos e métodos }
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
Definição de atributos Sempre é declarado o modificador de acesso: private, protected o public class NomeDaClasse { // atributos private $atributo1, $atributo2; }
Atributos: Acesso interno É usada a variável $this e a notação -> // acesso à um atributo desde um método $this->atributo1;
Métodos O constructor de uma classe é um método chamado construct() // Con dois underscoard antes do palavra constructor function construct($a1, $a2) { $this->atributo1 = $a1; $this->atributo2 = $a2; }
Herança e polimorfismo 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 É usada a palavra reservada extends class ClasseFilha extends ClassePai { private $b; function construct($a, $b) { parent:: construct($a); $this->b = $b; } }
Polimorfismo class ClassePai { function MetodoX() { // implementação } } class ClasseFilha extends ClassePai { function MetodoX() { // implementação } }
Atributos e métodos estáticos É usada a palavra reservada static class NomeDaClasse { static function MetodoX() { // implementação } } // É invocado: NomeDaClasse::MetodoX();
Criar instancias de classes É usada a palavra reservada new $obj = new NomeDaClasse(); $obj->metodoy();
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()
Situação 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)?
Banco de Dados (BD) Conjunto de dados que pertenecem à um mesmo contexto e armazenados sistemáticamente para seu posterior uso.
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 Oracle PostgreSQL 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 PostgreSQL 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 );
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)
SQL SELECT -Selecciona registros de uma tabela- SELECT expresión FROM tabla [WHERE condición]
Exemplo SELECT nome, avaliação FROM tb_estudante WHERE horas_estudo < 5
SQL INSERT -adiciona um ou mais registros à uma (e só uma) tabela- INSERT INTO tabela [(campo1,, campon)] VALUES (valor1,, valorn)
Exemplo INSERT INTO tb_estudante (id, nome, ano, horas_estudo, avaliação, disciplina) VALUES (5, Pepe, 3, 8, 10, ProgWeb )
SQL UPDATE -modifica os valores de um conjunto de registros existentes numa tabela- UPDATE tabela SET campo1 = valor1 [, campo2 = valor2,,] [WHERE condição]
Exemplo UPDATE tb_estudante SET horas_estudo = 6 WHERE nome = Pedro
SQL DELETE -apaga um ou mais registros existentes numa tabela- DELETE FROM tabela [WHERE condição ]
Exemplo DELETE FROM tb_estudante WHERE nome = Pepe
ACESSO À BD DESDE PHP
pg_connect pg_close pg_fetch_assoc pg_fetch_array pg_query pg_num_rows pg_fetch_all pg_fetch_object (TI)
Pasos para aceder à BD 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.
Acesso à PostgreSQL 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);
Programação Web Programação Orientada a Objectos e Acesso a Dados com PHP Conferencia 10 MSc. Yoenis Pantoja Zaldívar