• Nenhum resultado encontrado

Desenvolvimento Web II - PHP e MySQL

N/A
N/A
Protected

Academic year: 2022

Share "Desenvolvimento Web II - PHP e MySQL"

Copied!
25
0
0

Texto

(1)

Desenvolvimento Web II - PHP e MySQL

Matheus Abrantes Gadelha

Universidade Federal do Rio Grande do Norte Programa de Educa¸c˜ao Tutorial - Ciˆencia da Computa¸c˜ao

Natal, 2010

(2)

Roteiro

PHP

I

Introdu¸ c˜ ao

I

Vari´ aveis

I

Tipos

I

Estruturas de controle de fluxo

I

Orienta¸ c˜ ao a objeto

I

Atividade pr´ atica MySQL

I

Modelo de dados relacionais

I

Cria¸ c˜ ao e abandono de tabelas

I

Inser¸ c˜ ao, atualiza¸ c˜ ao e remo¸c˜ ao de dados

I

Sele¸ c˜ ao de dados Criando aplica¸ c˜ oes web

I

Integrando MySQL e PHP

I

Padr˜ oes de projeto PHP

I

Desenvolvimento de aplica¸ c˜ ao-exemplo

(3)

Introdu¸c˜ ao

Conhecendo PHP

Surgiu por volta de 1994, como um subconjunto de scripts Perl criados por Rasmus Lerdof, com o nome PHP/FI (Personal Home Page Tools/Forms Interpreter)

Linguagem extremamente modularizada, ideal para instala¸ c˜ ao e uso em servidores web.

Carascter´ısticas

Linguagem interpretada Tipagem fraca

Programa¸ c˜ ao estrutrada

Suporte a programa¸ c˜ ao orientada a objetos

(4)

Introdu¸c˜ ao

Conhecendo PHP

O c´ odigo PHP n˜ ao ´ e vis´ıvel para o usu´ ario. Ele ´ e utilizado para gerar c´ odigo HTML;

Muitas vezes o c´ odigo php est´ a inserido em p´ aginas HTML;

Possibilidade de criar p´ aginas baseadas em informa¸ c˜ oes coletadas pelo servidor;

PHP ´ e server-side;

(5)

Motiva¸c˜ ao

Por que aprender PHP?

Linguagem mais utilizada para desenvolvimento web. P.e.:Wikipedia foi completamente desenvolvida em PHP

Sintaxe similar a C/C++

Suporte a in´ umeros tipos de bases de dados: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite, MSSQL, Firebird

Suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP.

E poss´ıvel abrir sockets e interagir com outros protocolos ´

(6)

”Hello World!!!”

Seu primeiro c´ odigo PHP...

1<!DOCTYPE HTML PUBLIC ”−//W3C//DTD HTML 4 . 0 1 T r a n s i t i o n a l //EN”

2 ” h t t p : / /www . w3 . o r g /TR/ h t m l 4 / l o o s e . d t d ”>

3<html>

4 <head>

5 <t i t l e>Exemplo</ t i t l e>

6 </head>

7 <body>

8

9 <?php

10 echo ”Eu s o u um s c r i p t PHP ! ” ;

11 ?>

12

13 </body>

14</html>

Echo n˜ ao exibe mensagens na tela, mas escreve a string desejada no html.

Utilize o navegador para abrir a p´ agina e verificar o c´ odigo-fonte.

(7)

”O comando echo”

Escrevendo

HTML

com

PHP

echo ´ e utilizado para escrever strings em p´ aginas HTML. Observe o seguinte trecho:

1<?php

2i f (s t r s t r( $ SERVER [ ”HTTP USER AGENT” ] , ”MSIE” ) ) {

3 echo ”Vc e s t a h u s a n d o o I n t e r n e t E x p l o r e r<b r />” ;

4} ?>

Podemos intercalar c´ odigo PHP com HTML para obter uma melhor legibilidade. Ser´ a bastante ´ util quando conte´ udos de p´ aginas inteiras forem modificados por escolhas de navega¸c˜ ao dos usu´ arios.

1<?php i f (s t r s t r( $ SERVER [ ”HTTP USER AGENT” ] , ”MSIE” ) ) { ?>

2 <h3>s t r s t r r e t o r n a v e r d a d e i r o</h3>

3 <c e n t e r><b>Vc e s t a h u s a n d o o I n t e r n e t E x p l o r e r</b></c e n t e r>

4<?php } e l s e { ?>

5 <h3>s t r s t r r e t o r n a f a l s o</h3>

6 <c e n t e r><b>Vc n e s t a h u s a n d o o I n t e r n e t E x p l o r e r</b></c e n t e r>

7<?php } ?>

(8)

O comando echo

Atalhos de escrita

E poss´ıvel utilizar diferentes estilos de tags ´ php para escrever c´ odigo HTML mais rapidamente

1<?php echo ’ p a r a s e r v i r d o c u m e n t o s XHTML ou XML ’ ; ?>

2

3<s c r i p t l a n g u a g e=” php ”>

4 echo ’ T e s t a n d o s c r i p t ’ ;

5</ s c r i p t>

6

7<? echo ’ Modelo de t a g m a i s s i m p l e s ’ ; ?>

8

9<?= ” e x p r e s s i o n ” ?> = <? echo ” e x p r e s s i o n ” ?>

(9)

Esclarecimente importante

Sobre a utiliza¸ c˜ ao de ponto e v´ırgula...

Assim como C, Java e outras linguagens de programa¸ c˜ ao, o uso de

’;’(ponto e v´ırgula) ´ e obrigat´ orio ao t´ ermino de cada instru¸ c˜ ao. Contudo, quando uma tag PHP termina, o ’;’ N˜ AO precisa ser inserido se a tag termina IMEDIATAMENTE DEPOIS desse caractere(’;’). Exemplificando:

1<?php

2 echo ’ I s t o eh um t e s t e ’ ;

3?>

4

5<?php echo ’ I s t o eh um t e s t e ’ ?>

6

7<?php echo ’ O mi t i mo s a t a g de f e c h a m e n t o que f a l t a ’ ;

Para evitar complica¸ c˜ oes, SEMPRE utilize o ’;’.

(10)

Vari´ aveis

Tipos e declara¸ c˜ ao

Vari´ aveis PHP possuem tipos.

S˜ ao dinamicamente tipadas.

Para proporcionar uma melhor legibilidade, utilize a palavra chave var antes de declarar uma vari´ avel.

1<?php

2$ a b o o l = TRUE;

3$ a s t r = ” f o o ” ;

4$ a s t r 2 = ’ f o o ’ ;

5$ a n i n t = 1 2 ;

6echo g e t t y p e( $ a b o o l ) ;

7echo g e t t y p e( $ a s t r ) ;

8i f (i s i n t( $ a n i n t ) ) {

9 $ a n i n t += 4 ;

10}

11i f (i s s t r i n g( $ a b o o l ) ) {

12 echo ” S t r i n g : $ a b o o l ” ;

13}

14?>

(11)

Strings

1<?php

2$ c e r v e j a = ’ H e i n e k e n ’ ;

3echo ”O s a b o r d a s ’ $ c e r v e j a ’ s eh o t i m o ” ;

4echo ” E l e b e b e u a l g u m a s ${c e r v e j a}s ” ;

5echo ” E l e b e b e u a l g u m a s {$ c e r v e j a}s ” ;

6?>

Strings tamb´ em podem ser escritas com aspas duplas, em formato heredoc

ou nowadoc.

(12)

Arrays

Conceitos

Em PHP, arrays s˜ ao mapas ordenados

Eles podem simular filas, pilhas, cole¸c˜ oes, dicion´ arios, etc.

Lidar com arrays ´ e fundamental para processar informa¸ c˜ oes de uma base de dados

Pelo fato de PHP ser orientado a objeto, podemos criar arrays utilizando m´ etodos construtores.

PHP possui uma sintaxe muito abrangente. Isso evita erros, mas tamb´ em torna o c´ odigo menos leg´ıvel e de mais dif´ıcil manuten¸ c˜ ao.

Adote um estilo de programa¸ c˜ ao.

(13)

Arrays

Cria¸ c˜ ao de arrays

1<?php

2$a = a r r a y( ’ c o r ’ => ’ v e r m e l h a ’ , ’ s a b o r ’ => ’ d o c e ’ ,

3 ’ f o r m a ’ => ’ r e d o n d a ’ , ’ nome ’ => ’ maca ’ ,

4 4 // a c h a v e s e r a 0

5 ) ;

6

7$a [ ’ c o r ’ ] = ’ v e r m e l h a ’ ;

8$a [ ’ s a b o r ’ ] = ’ d o c e ’ ;

9$a [ ’ f o r m a ’ ] = ’ r e d o n d a ’ ;

10$a [ ’ nome ’ ] = ’ maca ’ ;

11$a [ ] = 4 ; // a c h a v e s e r a 0

12

13// o mesmo de a r r a y ( 0 => ’ a ’ , 1 => ’ b ’ , 2 => ’ c ’ )

14$b [ ] = ’ a ’ ;

15$b [ ] = ’ b ’ ;

16$b [ ] = ’ c ’ ;

17 18

19$ c o r e s = a r r a y( ’ v e r m e l h o ’ , ’ a z u l ’ , ’ v e r d e ’ , ’ a m a r e l o ’ ) ;

20f o r e a c h ( $ c o r e s a s $ c o r ) {

21 echo ”Vc g o s t a de $ c o r ?\n ” ;

22}

(14)

Estruturas de controle de fluxo

if...else...

A sintaxe mais comum para utiliza¸ c˜ ao das estruturas de controle if e else s˜ ao apresentadas a seguir:

1<?php

2i f ( $a > $b ) {

3 echo ” a i s b i g g e r t h a n b ” ;

4} e l s e i f ( $a == $b ) {

5 echo ” a i s e q u a l t o b ” ;

6} e l s e {

7 echo ” a i s s m a l l e r t h a n b ” ;

8}

9?>

(15)

Estruturas de controle de fluxo

if...else

Outra sintaxe pode ser utilizada:

1<?php /∗ I n c o r r e c t Method : ∗/

2i f( $a > $b ) :

3 echo $a . ” i s g r e a t e r t h a n ” . $b ;

4e l s e i f( $a == $b ) : // W i l l n o t c o m p i l e .

5 echo ” The a b o v e l i n e c a u s e s a p a r s e e r r o r . ” ;

6e n d i f ;

7/∗ C o r r e c t Method : ∗/

8i f( $a > $b ) :

9 echo $a . ” i s g r e a t e r t h a n ” . $b ;

10e l s e i f( $a == $b ) :

11 echo $a . ” e q u a l s ” . $b ;

12e l s e:

13 echo $a . ” i s n e i t h e r g r e a t e r t h a n o r e q u a l t o ” . $b ;

14e n d i f ;

15?>

(16)

Estruturas de controle de fluxo

while

1<?php

2/∗ e x a m p l e 1 ∗/

3$ i = 1 ;

4w h i l e ( $ i <= 1 0 ) {

5 echo $ i ++; /∗ t h e p r i n t e d v a l u e w o u l d be

6 $ i b e f o r e t h e i n c r e m e n t

7 ( p o s t−i n c r e m e n t ) ∗/

8}

9

10/∗ e x a m p l e 2 ∗/

11$ i = 1 ;

12w h i l e ( $ i <= 1 0 ) :

13 echo $ i ;

14 $ i ++;

15e n d w h i l e ;

16?>

(17)

Estruturas de controle de fluxo

for

1<?php

2f o r ( $ i = 1 ; $ i <= 1 0 ; $ i ++) {

3 echo $ i ;

4}

5f o r ( $ i = 1 ; ; $ i ++) {

6 i f ( $ i > 1 0 ) {

7 b r e a k;

8 }

9 echo $ i ;

10}

11$ i = 1 ;

12f o r ( ; ; ) {

13 i f ( $ i > 1 0 ) {

14 b r e a k;

15 }

16 echo $ i ;

17 $ i ++;

18}

19f o r ( $ i = 1 , $ j = 0 ; $ i <= 1 0 ; $ j += $ i , p r i n t $ i , $ i ++);

20?>

(18)

Estruturas de controle de fluxo

foreach

O foreach surge da necessidade de efetuar itera¸ c˜ oes sobre arrays de maneira r´ apida, simples e intuitiva. Observe o exemplo:

1<?php

2$ a r r = a r r a y( 1 , 2 , 3 , 4 ) ;

3f o r e a c h ( $ a r r a s &$ v a l u e ) {

4 $ v a l u e = $ v a l u e ∗ 2 ;

5}

6// $ a r r i s now a r r a y ( 2 , 4 , 6 , 8 )

7u n s e t( $ v a l u e ) ; // b r e a k t h e r e f e r e n c e w i t h t h e l a s t e l e m e n t

8?>

(19)

Estruturas de controle de fluxo

switch

1<?php

2i f ( $ i == 0 ) {

3 echo ” i e q u a l s 0 ” ;

4} e l s e i f ( $ i == 1 ) {

5 echo ” i e q u a l s 1 ” ;

6} e l s e i f ( $ i == 2 ) {

7 echo ” i e q u a l s 2 ” ;

8}

9

10s w i t c h ( $ i ) {

11 c a s e 0 :

12 echo ” i e q u a l s 0 ” ;

13 b r e a k;

14 c a s e 1 :

15 echo ” i e q u a l s 1 ” ;

16 b r e a k;

17 c a s e 2 :

18 echo ” i e q u a l s 2 ” ;

19 b r e a k;

20}

21?>

(20)

Fun¸c˜ oes

As fun¸c˜ oes PHP podem ser prototipadas.

Elas tamb´ em podem ser declatas com base em estruturas de controle de fluxo.

PHP possui suporte a fun¸ c˜ oes recursivas. Nenhum acr´ escimo a sintaxe ´ e necess´ ario.

1<?php

2$ m a k e f o o = t r u e;

3b a r ( ) ;

4i f ( $ m a k e f o o ) {

5 f u n c t i o n f o o ( )

6 {

7 echo ” I don ’ t e x i s t u n t i l p r o g r a m e x e c u t i o n r e a c h e s me .\n ” ;

8 }

9}

10i f ( $ m a k e f o o ) f o o ( ) ;

11f u n c t i o n b a r ( )

12{

13 echo ” I e x i s t i m m e d i a t e l y upon p r o g r a m s t a r t .\n ” ;

14}

15?>

(21)

Fun¸c˜ oes

Passagem de argumentos

Por default, a passagem de argumentos ´ e feita por valor

E poss´ıvel passar argumentos por referˆ ´ encia, de forma semelhante a C++

Tamb´ em ´ e permitido definir arugumentos default para m´ etodos

1<?php

2f u n c t i o n a d d s o m e e x t r a (& $ s t r i n g )

3{

4 $ s t r i n g .= ’ and s o m e t h i n g e x t r a . ’ ;

5}

6$ s t r = ’ T h i s i s a s t r i n g , ’ ;

7a d d s o m e e x t r a ( $ s t r ) ;

8echo $ s t r ;

9

10f u n c t i o n m a k e c o f f e e ( $ t y p e = ” c a p p u c c i n o ” )

11{

12 r e t u r n ” Making a cup o f $ t y p e .\n ” ;

13}

14echo m a k e c o f f e e ( ) ;

15echo m a k e c o f f e e ( n u l l ) ;

16echo m a k e c o f f e e ( ” e s p r e s s o ” ) ;

(22)

Orienta¸c˜ ao a objeto

Conceitos b´ asicos

A orienta¸c˜ ao a objeto ´ e baseada em trˆ es conceitos fundamentais:

heran¸ ca, polimorfismo e encapsulamento.

Heran¸ca ´ e a capacidade de determinadas classes se utilizarem de c´ odigo previamente definido para outras. Esse processo, al´ em de proporcionar reaproveitamento de c´ odigo, conecta em termos pr´ aticos, entidades semanticamente relacionadas.

Polimorfismo ´ e a capacidade que um mesmo m´ etodo possui de se modificar conforme o contexto

Encapsulamento ´ e um mecanismo de controle de acesso a entidades-membro das classes

Apesar de serem trˆ es defini¸ c˜ oes diferentes, elas est˜ ao intimamente

conectadas.

(23)

Orienta¸c˜ ao a objeto

1<?php

2c l a s s T e s t

3{

4 s t a t i c p u b l i c f u n c t i o n getNew ( )

5 {

6 r e t u r n new s t a t i c ;

7 }

8}

9

10c l a s s C h i l d e x t e n d s T e s t

11{}

12

13$ o b j 1 = new T e s t ( ) ;

14$ o b j 2 = new $ o b j 1 ;

15var dump( $ o b j 1 !== $ o b j 2 ) ;

16

17$ o b j 3 = T e s t : : getNew ( ) ;

18var dump( $ o b j 3 i n s t a n c e o f T e s t ) ;

19

20$ o b j 4 = C h i l d : : getNew ( ) ;

21var dump( $ o b j 4 i n s t a n c e o f C h i l d ) ;

22?>

(24)

Orienta¸c˜ ao a objeto

Construtores e destrutores

1<?php

2c l a s s B a s e C l a s s {

3 f u n c t i o n c o n s t r u c t ( ) {

4 p r i n t ” I n B a s e C l a s s c o n s t r u c t o r\n ” ;

5 }

6}

7c l a s s S u b C l a s s e x t e n d s B a s e C l a s s {

8 f u n c t i o n c o n s t r u c t ( ) {

9 p a r e n t : : c o n s t r u c t ( ) ;

10 p r i n t ” I n S u b C l a s s c o n s t r u c t o r\n ” ;

11 }

12}

13$ o b j = new B a s e C l a s s ( ) ;

14$ o b j = new S u b C l a s s ( ) ;

15c l a s s M y D e s t r u c t a b l e C l a s s {

16 f u n c t i o n c o n s t r u c t ( ) {

17 p r i n t ” I n c o n s t r u c t o r\n ” ;

18 $ t h i s−>name = ” M y D e s t r u c t a b l e C l a s s ” ;

19 }

20 f u n c t i o n d e s t r u c t ( ) {

21 p r i n t ” D e s t r o y i n g ” . $ t h i s−>name . ”\n ” ;

22 }

(25)

Atividade pr´ atica

Referências

Documentos relacionados

Biologia populacional de Pareiorhina rudolphi Pareiorhina rudolphi Pareiorhina rudolphi (Loricariidae, Pareiorhina rudolphi (Loricariidae, (Loricariidae, (Loricariidae,

O separador Conjuntos de discos independentes dos recursos da solução de alta disponibilidade da página Gerir a solução de alta disponibilidade, apresenta uma lista de todos

No exemplo apresentado na Caixa: Como calcular a relação custo-eficácia, por exemplo, teria sido mais adequado comparar as taxas obtidas no caso de diferentes rubricas de custo para

Como consequência dessa dependência, “o texto didático traz para sala de aula mais um personagem, seu autor, que passa a estabelecer um dialogo com o professor e seus

Considerando que o valor de bolsa e os indicadores de geração de valor são cada vez mais utilizados pelos investidores ao analisar o desempenho econômico e

Documento contendo análise de 40 (quarenta) prestações de contas dos subprojetos financiados por intermédio de Organismos Internacionais e elaboração relatório

capacidade de transporte aéreo internacional oferecidas, segundo considerações comerciais de mercado. Por força desse direito, as Partes Contratantes não devem limitar

2.º A avaliação do processo de desenvolvimento e aprendizagem dos alunos do 1.º ao 9.º ano do Ensino Fundamental e do Programa de Educação de Jovens e Adultos