Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material IV-Bimestre Tratamento de Arquivos,Sessões, Upload e Conceitos de Orientação à Objetos http://www1.univap.br/~wagner Prof. Responsável Wagner Santos C. de Jesus 1 Conceito de Sessão 2 Sessão Sessão significa reunião ou intervalo de tempo que dura uma atividade específica. 3 Sessão Vem a ser uma forma de armazenar dados através da respectiva gravação, controlada pelo sistema, de um arquivo no servidor. O ato de gravar um arquivo de sessão é chamado de registrar na sessão. 4 Curva de duração de uma sessão x = -t2 onde t[-1≤ t ≤0] 5 Funcionamento de uma sessão Memória Pagina1.php $lista =1 Servidor Session $lista =1 Pagina2.php 6 Algoritmo de uma sessão Nome_Sessão Criação_Sessão Armazena_Dados Sessão 7 Criação, Manipulação e encerramento de sessões 8 Função session_name() Cria o nome de uma identificação de dados armazenado na sessão. sessão para que serão Sintaxe: session_name(<String>); 9 Funções session_start() Cria uma nova sessão reservando um espaço de memória para criação dos dados da mesma. Sintaxe: session_start(); 10 $_SESSION[] – Armazena dados na sessão Grava dados a serem armazenados em uma sessão. Permitindo realizar alocação para um determinado dado. Sintaxe: $_SESSION[<String>]; 11 Exemplo $_SESSION[] O Array section permite o armazenamento dos dados no servidor. Exemplo: $_SESSION[‘login’] = ‘claudia’; $_SESSION[‘senha’] = ‘7&m698’; 12 Encerramento de uma sessão 13 session_unset() Libera as variáveis de memória de uma sessão. Sintaxe: session_unset() 14 session_destroy() Apaga uma sessão criada em uma página. Sintaxe: session_destroy(); 15 Exemplo Prático de criação de sessão <?php session_start(); echo 'Bem vindo página 1'; $_SESSION['login'] = 'Roberta'; $_SESSION['senha'] = '7$9088'; echo '<br /><a href="sessao2.php">page 2</a>'; ?> 16 Captura de dados da sessão <?php session_start(); echo 'Bem vindo página 2 <br>'; echo $_SESSION['login']."<br>"; echo $_SESSION['senha']; ?> 17 Tratamento de Exceção 18 Conceito de Exceção O tratamento de exceção, na ciência da computação, é o mecanismo responsável pelo tratamento da ocorrência de condições que alteram o fluxo normal da execução de programas de computadores. 19 Funcionamento Em geral, na ocorrência de uma exceção, o estado do programa é gravado em um local pré-definido e a sua execução é direcionada para uma rotina de tratamento. Dependendo da situação, a rotina de tratamento pode prosseguir a execução a partir do ponto que originou a exceção, utilizando a informação gravada para restaurar o estado. 20 Comportamento de Exceção Fluxo Natural S Exceção Fluxo Exceção N Fluxo Natural Fim 21 Comando de try{} (Tentar) Cria um bloco de modelo de exceção e realiza a tentativa de execução até o final caso o processo seja totalmente executado então o programa na mudará de fluxo se algo não se comportar de maneira satisfatória o programa irá desviar o fluxo. 22 Funcionamento de try{} catch{} try Algoritmo catch Finalização 23 Sintaxe try{}(Tentar) catch (Pegar) try { <Instruções_php> } catch(<tipo_de_exceção>) { <Instruções_php_exceção> } 24 Tratamento direto <?php Tratamento pelo próprio interpretador sem envio da exceção. try { $x = 1/0; echo $x; } catch (Exception $e) { echo 'Erro: Divisão por Zero !!! \n'; } ?> 25 trow{} – Lançar Lança uma exceção para entrar em estado de alerta e vai ver se o método atual toma alguma precaução ao tentar executar esse trecho de código. 26 Exemplo de trow{} <?php function inverse($x) { if (!$x) { throw new Exception('Divisão por zero.'); } return 1/$x; } try { inverse(5); inverse(0); } catch (Exception $e) { echo 'Erro: ', $e->getMessage(), "\n"; } 27 Manipulação de Arquivo de Dados 28 Arquivo de Dados Muitas informações precisam ler e escrever informações de um dispositivo de memória auxiliar. Essas informações são armazenadas no dispositivo na forma de um arquivo de dados. Os arquivos de dados nos permitem armazenar informações permanentemente e acessar e alterar essas informações sempre que necessário. 29 Usando Streams. A manipulação de arquivo normalmente é feita por intermédio de um recurso do sistema operacional denominado Stream (que vem a ser cadeia de caracteres ou bytes). Normalmente em C manipulamos arquivos de texto que são arquivo não formatados ou seja esse tipo de manipulação deve ser feita inteiramente por intermédio do programador que desenvolve a aplicação procedimento que da origem ao que chamamos de estrutura de banco de dados que são complexas e demando conhecimentos matemáticos de relacionamento intercessão. 30 Criando um arquivo de dados do tipo texto. Para se trabalhar com um arquivo de dados do tipo texto, o primeiro passo é estabelecer um buffer, onde as informações são armazenadas temporariamente durante a transferencia entre memória e computador (Dispositivo de gravação). 31 EOF 32 Criando um Buffer. Para se criar um buffer é necessário usar uma variável que é um tipo de estrutura especial que estabelece o buffer. Para dar nome ao buffer atribui-se a estrutura do arquivo ao próprio. 33 Abrindo e criando um arquivo - fopen() • fopen() : Para se manipular um arquivo é preciso cria-lo para poder usar o recurso de leitura, e gravação. A função fopen retorna um ponteiro para o início do buffer associado ao arquivo. Um valor false é retornado quando o arquivo de dados não puder ser encontrado. 34 Sintaxe : <buffer> = fopen(<nome-arquivo>, <tipo-abertura>); 35 Exemplo : $pt = fopen("c:/diretorio/teste.txt","r+"); Obs : Este exemplo abre um arquivo já existente para leitura e gravação. 36 Escrevendo dados em um Arquivo fprintf() Para gravar uma informação em um arquivo usamos a função fprintf(), que permite escrever um dado no buffer. Sintaxe: fprintf(<buffer>,<cadeia_Caracteres); Obs : A cadeia de ser sempre do tipo char. 37 Exemplo : fprintf($pt,“Aula de php"); 38 Fechando um arquivo de dados - fclose() Para se fechar um arquivo usamos a função fclose(), que permite remover todos os dados do buffer para o disco. Sintaxe : fclose(<nome_buffer>); Exemplo : fclose($pt); 39 Exemplo de um programa para escrever um dado no arquivo. $fp = fopen("teste.txt",“w"); fprintf($fp,”Aula do IV Bimestre \r\n"); fclose($fp); A expressão \r\n - Determinam <enter>. Marcador de fim de linha. 40 Leitura de um arquivo de dados fgets(), feof(). Permite realizar a leitura de um ou mais registros em arquivo cada vez que fgets() é acionado desloca o ponteiro para o próximo registro até encontrar o final do arquivo. Que é indicado pela função feof(), que retorna verdadeiro caso o final do arquivo seja encontrado. Sintaxe : fgets(<Buffer>,<comprimento_bytes>); feof(<Buffer>); 41 Exemplo leitura de arquivo <?php $arquivo = fopen("teste.txt","r"); if(!$arquivo) { echo "Arquivo não pode ser aberto !!"; }else { while(!feof($arquivo)){ $linha = fgets($arquivo); echo $linha."<br>"; } } fclose($arquivo); ?> 42 Conceitos e Aplicações de Download e Upload 43 Download Termo utilizado para referenciar a obtenção de dados de um dispositivo através de um canal de comunicação. 44 Funcionamento Download 45 Upload Carregamento é a transferência de dados de um computador local para outro computador ou para um servidor. Caso ambos estejam em rede, pode-se usar um servidor de FTP, HTTP ou qualquer outro protocolo que permita a transferência. 46 Upload 47 Transferência de Dados Cliente/Servidor 48 Envio de Arquivo (Cliente) Cliente Dados Arquivo File Servidor submit submit multipart/form-data 49 Cliente (Envio de arquivo) <?php echo "<form name=form method=post action=upload.php enctype=multipart/form-data>"; echo " Escolha Arquivo: <input type=file name=Arquivo size=60 />"; echo "<Input type=submit value=Enviar>"; echo "</form>"; ?> 50 Tratamento no Servidor File tmp (Temporário) Name (Real) Servidor copy(temporario,real) 51 copy(): Escrever no servidor. Sintaxe: copy(<nome_lógico>,<nome_fisico>) Exemplo: copy(<tmp>,<name>); 52 Exemplo prático tratamento no servidor <?php $nome_temporario = $_FILES["Arquivo"]["tmp_name"]; $arq = $_FILES["Arquivo"]["name"]; $x = strrchr($arq,"pdf"); if(empty($x)) { echo "<script>alert('Arquivo Inválido formato (pdf) !!')</script>"; }else { $nome_real= “Caminho".$_FILES["Arquivo"]["name"]; $result = copy($nome_temporario,$nome_real); } ?> 53 Conceitos e Aplicações de Orientação à Objetos Usando PHP (POO) 54 Classe Vem a ser uma estrutura de dados criada para dar origem ou modelar um objeto. Carro Propriedades Marcha Freio Embreagem Motor Método : Método vem a ser um grupo de instruções em uma classe que define como os objetos da classe se comportarão. Os métodos são análogos às funções em outras linguagens. Método da classe carro Devem ser descritos com uma ação (verbo) que podem controlar o estado do objeto. Exemplo : Mudar_Marcha(estado_marcha) Marcha = estado_marcha{0,1,2,3,4....} Freiar_carro(estado_freio) Freio = estado_freio{true,false} Estrutura de uma classe Carro Propriedades Marcha Freio Embreagem Motor Métodos Mudar_Marcha(..) Freiar_Carro(..) Objetos É uma instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objeto Carro obj_carro1 = Carro () Carro obj_carro2 = Carro () obj_carro1.Freiar_carro(true) obj_carro1.Mudar_Marcha(3) obj_carro2.Freiar_carro(false) Herança Herança (ou generalização) é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Há Herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um". Um exemplo de herança: Mamífero é superclasse de Humano. Ou seja, um Humano é um mamífero. Estrutura de Herança Veiculo Propriedades Marcha Freio Métodos Mudar_Marcha(..) Freiar_Carro(..) Exemplo: Herança Veiculo Carro Moto Bicicleta Polimorfismo Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma assinatura (lista de parâmetros e retorno) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia. No caso de polimorfismo, é necessário que os métodos tenham exatamente a mesma identificação, sendo utilizado o mecanismo de redefinição de métodos. Esse mecanismo de redefinição não deve ser confundido com o mecanismo de sobrecarga de métodos. Exemplo: Polimorfismo Herda Carro Veiculo Métodos Mudar_Marcha(..) Freiar_Carro(..) Polimorfismo Podem haver implementações diferentes para o mesmo método. Animal Cachorro Gato Barulho() Cavalo Barulho() Barulho() Barulho() Latir Miar Relinchar Aplicação Básica POO 67 Estrutura de classe class Nome_classe { ...<métodos> } 68 Exemplo de Classe class exempc0 { public function imprime(){ echo "Imprimindo Dados.."; } } 69 Criação de um objeto Operador new: Exemplo: $obj = new exempc0(); 70 Exemplo Completo class exempc0 { public function imprime(){ echo "Imprimindo Dados.."; } } $obj = new exempc0(); $obj->imprime(); 71 Aplicação das Propriedades 72 Exemplo Propriedades class exempcl { public $var1 = 1; public $var2 = 2; public function imprime(){ echo $this->var1; } } $obj = new exempcl(); $obj->imprime(); 73 Aplicação de Herança 74 Exemplo de herança class Calcsub { public function subtracao($a,$b){ echo $a-$b."<br>"; } } class Calcsoma extends Calcsub { public function soma($a,$b){ echo $a+$b."<br>"; } } 75 Utlização do $obj = new Calcsoma(); $obj->subtracao(9,4); $obj->soma(9,4); 76 Aplicação de Polimorfismo 77 Exemplo de Polimorfismo class Calcsub { public function subtracao($a,$b){ echo $a-$b."<br>"; } } class Calcsoma extends Calcsub { function soma($a,$b){ echo $a+$b."<br>"; } function chamada(){ echo $this->subtracao(4,3); } } 78