O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Programação Modular:
desenvolvimento de funções
Prof. Mauricio Garcia Nascimento
Prof. Daniel Arndt Alves
Introdução ao De...
Objetivos
Reutilização de código
Maior clareza e limpeza no código
Modularização
Agrupamento de funções em módulos específ...
Funções no PHP
Devem ter um nome exclusivo
case insensitive

Podem ter lista de parâmetros
Podem retornar valor ao código
...
Parâmetro opcional
function somar($a, $b=10, $c=20) {
return $a + $b + $c;
}

!

echo somar(10, 20, 30);
echo somar(3, 5);...
Escopo das variáveis nas funções

// escopo local
function incr($a) {
$a++;
return $a;
}

!

$a = 1;
echo incr($a);
echo $...
Função recursiva

function fatorial($n) {

!

!

//condição de saída
if (0 == $n) {
return 1;
}
return $n * fatorial($n-1)...
Inclusão de funções no código
Podem ser inseridas em qualquer porção do código principal
Chamada de uma função pode até me...
Biblioteca de funções
Declaração de funções em arquivos específicos (bibliotecas)
Sugestões:
Arquivos com extensão *.inc.p...
Inclusão de scripts
require_once
principal.php
<?php
require_once('lib/data.inc.php');
require_once('lib/aritmetico.inc.ph...
Arquitetura de diretórios da aplicação

http://servidor/principal.php

/var
/www

http://servidor/login.php

principal.php...
Arquitetura de diretórios da aplicação
Boa prática
Não armazenar bibliotecas e arquivos auxiliares em diretórios visíveis ...
Arquitetura de diretórios da aplicação
Segurança de arquivos
Apenas expor arquivos realmente necessários dentro do
diretór...
Próximos SlideShares
Carregando em…5
×

Programacao Modular

1.620 visualizações

Publicada em

Programação Modular em Linguagem PHP

Publicada em: Educação
  • Entre para ver os comentários

  • Seja a primeira pessoa a gostar disto

Programacao Modular

  1. 1. Programação Modular: desenvolvimento de funções Prof. Mauricio Garcia Nascimento Prof. Daniel Arndt Alves Introdução ao Desenvolvimento de Sistemas Web com PHP Programa de Verão IME-USP 2014
  2. 2. Objetivos Reutilização de código Maior clareza e limpeza no código Modularização Agrupamento de funções em módulos específicos ! Base para a Programação Orientada a Objetos !2 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  3. 3. Funções no PHP Devem ter um nome exclusivo case insensitive Podem ter lista de parâmetros Podem retornar valor ao código function ola() { echo 'Olá Mundo'; return true; } function incrementa($valor) { $ret = $valor + 1; return $ret; } ola(); echo incrementa(1); $b = incrementa(2) * 10; ! !3 ! Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br //2 //30
  4. 4. Parâmetro opcional function somar($a, $b=10, $c=20) { return $a + $b + $c; } ! echo somar(10, 20, 30); echo somar(3, 5); echo somar(50); //60 //28 //80 function fmt_data($timestamp, $fmt='d/m/Y') { return date($fmt, $timestamp); } ! $ts = time(); echo fmt_data($ts, 'd/m H:i'); echo fmt_data($ts); !4 // 25/09 20:55 // 25/09/2007 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  5. 5. Escopo das variáveis nas funções // escopo local function incr($a) { $a++; return $a; } ! $a = 1; echo incr($a); echo $a; !5 //? //? // escopo global function incr2() { global $a; $a++; return $a; } ! $a = 1; echo incr2(); echo $a; //? //? Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  6. 6. Função recursiva function fatorial($n) { ! ! //condição de saída if (0 == $n) { return 1; } return $n * fatorial($n-1); } ! echo fatorial(5); !6 // 120 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  7. 7. Inclusão de funções no código Podem ser inseridas em qualquer porção do código principal Chamada de uma função pode até mesmo ser feita antes da sua declaração function f1() { /*corpo da função f1*/ } function f2() { /*corpo da função f2*/ } ! echo f1(); echo f2() + 10; echo f3() + f2(); ! function f3() { /*corpo da função f3*/ } !7 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  8. 8. Biblioteca de funções Declaração de funções em arquivos específicos (bibliotecas) Sugestões: Arquivos com extensão *.inc.php Diretório específico para biblioteca de funções data.inc.php <?php function d1() { ... } function d2() { ... } ... function d10() { ... } ?> aritmetico.inc.php <?php function m1() { ... } ... function m10() { ... } ?> !8 principal.php <?php // ... echo d1(); echo m1() + m2(); ?> listagem.php <?php // ... echo d10(); ?> Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  9. 9. Inclusão de scripts require_once principal.php <?php require_once('lib/data.inc.php'); require_once('lib/aritmetico.inc.php'); ! echo d1(); echo m1() + m2(); ?> !9 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  10. 10. Arquitetura de diretórios da aplicação http://servidor/principal.php /var /www http://servidor/login.php principal.php login.php ! aritmetico.inc.php http://servidor/menu.inc.php menu.inc.php http://servidor/logs/acessos.txt usuario.class.php /logs http://servidor/config/parametros.php acessos.txt /config parametros.php !10 Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  11. 11. Arquitetura de diretórios da aplicação Boa prática Não armazenar bibliotecas e arquivos auxiliares em diretórios visíveis ao Servidor Web /var /www principal.php login.php /logs acessos.txt /config parametros.php /lib aritmetico.inc.php menu.inc.php usuario.class.php !11 http://servidor/principal.php http://servidor/login.php principal.php <?php require_once('../config/parametros.php'); require_once('../lib/menu.inc.php'); ... ?> Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br
  12. 12. Arquitetura de diretórios da aplicação Segurança de arquivos Apenas expor arquivos realmente necessários dentro do diretório do Servidor Web Arquivos PHP requisitados diretamente pelo usuário Imagens, Javascript, Folhas de Estilo, ... Demais arquivos (requisitados apenas 
 pela aplicação), não devem estar visíveis !12 /var /www /js /img /css /lib /class /config /logs Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
 Prof. Daniel Arndt Alves – progdan@progdan.pro.br

×