Visão geral Apresentação da disciplina: O PHP surgiu em meados de 1994 como um pacote de programa CGI com o intuito de substituir alguns comandos PEARL. A linguagem oi se desen!ol!endo" no!os recursos sendo criados e #o$e $% & considerada uma linguagem madura e coni%!el utili'ada em di!ersos sites com dierentes ob$eti!os. ( uma das linguagens mais utili'adas na )eb" pela sua acilidade de implementa*+o" suporte a testes automati'ados" open, source" gratuita e -ue conta com uma grande comunidade de usu%rios. O crescimento cada !e' mais acelerado do mercado eletrnico e da utili'a*+o da internet em geral continua e/igindo mais proissionais da %rea de tecnologia para implementar e manter solu*0es on,line.
Objetivos: esta unidade" !eremos alguns dados sobre o mercado da internet atualmente" a sua e!olu*+o e ent+o con#eceremos as linguagem e recursos utili'ados para o desen!ol!imento de um sistema )eb. 2ocaremos nossa aten*+o no PHP" mas tamb&m discutiremos assuntos muito importantes -ue s+o relacionados ao ambiente 3eb como H56L" C77" 8a!a7cript" A8A e banco de dados.
Conteúdo Programático: Disciplina: PROGRAMAÇÃO EM HTML •
Conhecer o ambiente PHP e utilizar os comandos da linguagem PHP conforme a solução web.
•
• •
• • • •
Desenvolver e manter aplicações dinâmicas para Internet com interface web, criando sites dinâmicos com a linguagem PHP. Desenvolver scripts do lado servidor em PHP. Conhecer os conceitos, técnicas, comandos e instruções no desenvolvimento de aplicações em PHP. Revisão de Clientes/servidores/TCP Internet e Comércio Eletrônico Programação HTML e PHP Revisão/contextualização de programação de computadores / PHP
Metodologia:
Na unidade utilizaremos todos os recursos necessários e disponíveis para o desenvolvimento da discussão do conteúdo, sendo assim, faremos uso de: •
•
•
•
•
Textos da própria web-aula e de outros sites que possam contribuir para a discussão; Vídeos que podem esclarecer ou aprofundar determinados conteúdos; Fóruns para discussão de tópicos onde seja possível a troca de ideias e conteúdos entre os discentes e docentes; Avaliações virtuais onde será realizada a verificação do aprendizado; Entre outros recursos que poderão ser utilizados visando maior entendimento da matéria.
Avaliação Avaliaçã o Prevista:
Cada 3eb,aula conter% uma a!alia*+o !irtual composta de : -uest0es ;sendo assim" temos < 3eb,aulas com : -uest0es cada=. >uando #ou!er ?rum de discuss+o o aluno ser% a!aliado -uanto ao conte@do de sua postagem" onde de!er% comentar o t?pico apresentando aprese ntando respostas completas e com n!el crtico de a!alia*+o pertinente ao n!el de p?s,gradua*+o.
Critérios para Participação dos Alunos no !rum: >uando #ou!er ?rum de discuss+o o aluno ser% a!aliado -uanto ao conte@do de sua postagem" onde de!er% comentar o t?pico apresentando respostas completas e com n!el crtico de a!alia*+o pertinente ao n!el de p?s, gradua*+o. 5e/tos apenas concordando ou discordando de coment%rios de outros participantes do ?rum sem a de!ida $ustiicati!a ou complementa*+o n+o acrescentam em nada ao debate da disciplina" sendo assim" de!em ser e!itados. Os te/tos de!em sempre !ir acompan#ados das $ustiicati!as para a opini+o do discente sobre o conte@do discutido" para -ue assim" possamos dar continuidade ao debate em n!el ade-uado. Al&m disso" podem ser utili'ados cita*0es de artigos" li!ros e outros recursos -ue undamentem a opini+o ou deem sustenta*+o a sua posi*+o crtica sobre o assunto. Be!e ser respeitado o t?pico principal do ?rum" e!itando debates -ue n+o tem rela*+o com o tema selecionado pelo proessor.
E ent+o Damos entender um pouco mais sobre o uni!erso do desen!ol!imento )eb. Como !imos na !deo,aula <" uma p%gina pode conter dierentes linguagens" cada uma tem seu ob$eti!o. Damos con#ec,las um pouco mais "#M$
2arei uma bre!e introdu*+o ao H56L neste curso de PHP" pois o mesmo & essencial para compreendermos mel#or este curso. Docs ter+o uma disciplina especica sobre H56L onde discutir+o todos os detal#es" ino!a*0es" etc. Damos con#ec,lo Fm documento H56L ;Hper5e/t 6arup Language= & um con$unto de instru*0es para deinir a estrutura de p%ginas 3eb. O H56L n+o & considerado uma linguagem de programa*+o" pois ela apenas deine a apresenta*+o do conte@do. Por e/emplo" com H56L n+o & poss!el criar estruturas tpicas de linguagens de programa*+o como comandos I2" 3#ile" etc. Para deinir a estrutura do documento" o H56L utili'a,se de tags ;marca*0es= -ue inormam ao na!egador como e/ibir o conte@do" estas tags consistem do sinal J ;Kmaior -ueK=. Be um modo geral" as tags aparecem em pares" por e/emplo" Algum 5e/to. ote -ue o smbolo -ue termina uma determinada marca*+o & igual a-uele -ue a inicia" antecedido por uma barra ;=. este e/emplo" di' ao na!egador -ue est% sendo iniciado um no!o par%grao e indica -ue este par%grao terminouM Alguma tags n+o aparecem em pares" como por e/emplo" a tag -ue reali'a uma -uebra de lin#a no te/to.
SAIBA MAIS E/istem di!ersas marca*0es ;tags= H56L" para con#ec,las !oc pode acessar Nhttp://www.w3schools.com/html/html_intro.asp
O H56L dierentemente do PHP n+o dierencia entre mai@sculas e min@sculas ;n+o & Kcase sensiti!eK=. Ent+o" por e/emplo" a nota*+o& e-ui!alente aou. De$a a seguir um e/emplo de uma simples p%gina H56L com dierentes tags
Arquivo pagina.html
Para testar esta pagina basta abrir o bloco de notas" copiar e colar este conte@do e ent+o sal!ar com o nome pagina.#tml" a & s? abri,la em seu na!egadorM C%%
Antes de comentarmos sobre o C77 na!egue por dierentes p%ginas deste linhttp://www.mezzoblue.com/zengarden/alldesigns/ . Doc percebeu -ue as p%ginas mesmo parecendo completamente dierentes" apresentam o mesmo conte@do Isto & o C77M C77 ;Cascading 7tle 7#eets 2ol#as de Estilos em Cascata= tem a inalidade de dar uma orma de apresenta*+o ao conte@do do documento H56L. Inicialmente as cores e taman#os de onte eram
deinidos diretamente pelo H56L" assim n+o era poss!el separar o conte@do do documento de sua ormata*+o. a pr%tica era dicil reali'ar altera*0es no laout das p%ginas )eb" pois esta ormata*+o esta!a misturadaJ com o c?digo H56L. Com o C77 & poss!el modiicar completamente a aparncia de um site alterando inorma*0es de apenas um ar-ui!o C77. Damos !er um e/emploM ;Para simpliicar a deini*+o do C77 est% na mesma p%gina -ue o H56L=.
Arquivo css.html
A estrutura de ormata*+o de estilos C77 & basicamente esta
A pala!ra seletorJ corresponde a -uais elementos H56L sorer+o as altera*0es de laout e ent+o deinimos -ual o !alor para dierentes
propriedades" no e/emplo anterior notamos !%rias ormas de deinir as cores dos conte@dos para dierentes tags. Execute o exemplo para visualizar!
Agora -ue $% con#ecemos um pouco sobre o H56L e o C77" para podermos testar as uncionalidades do PHP de!emos preparar um ambiente para praticarmosM Damos l%
&nstalando o M'%($ ) Apac*e e P"P
Ftili'aremos neste caso o )amp7er!er" -ue instala e conigura todos os recursos necess%rios para e/ecutar nossos e/emplos. Be!emos inicialmente a'er o do3nload do )amp7er!er em N#ttp333.3ampser!er.comen" ao clicar em do3nload !isuali'aremos as !ers0es dispon!eis. Escol#a a correspondente ao seu sistema" Q< ou 4 bits.
Fma no!a $anela ser% aberta" cli-ue ent+o na op*+o directly
you can download it
A instala*+o do )amp7er!er & simples. Ap?s ter reali'ado o do3nload" basta e/ecutar o aplicati!o e seguir o )i'ard para a instala*+o. A primeira tela & a de boas,!indas" cli-ue Next >.
( necess%rio concordar com os termos de licen*a
Agora de!emos conigurar a pasta onde ser% instalado o programa. 7e preerir" & poss!el dei/ar a pasta -ue !em pr&,conigurada. ?s a utili'aremos em nossos e/emplos.
Ap?s isso" o programa perguntar% se dese$a criar cones na barra de tareas e no destop" escol#a o de sua preerncia e cli-ue em e/t.
Esta tela conirma as op*0es selecionadas" estando tudo o" cli-ue em Install . Fma tela de progresso ser% e/ibida" basta aguardarM
Ap?s instalar todos os recursos" aparecer% a pergunta sobre -ual bro3ser ser% utili'ado" apenas cli-ue em Abrir
A pr?/ima tela perguntar% sobre as conigura*0es do PHP mail" apenas cli-ue em e/t.
Com a op*+o selecionada" basta clicar em 2inis# para inali'ar o instalador
Ao inali'armos" podemos notar -ue surgiu um cone no canto inerior direito da tela " a cor !erde indica -ue o ser!idor est% online . Clicando sobre o cone" aparecem di!ersas op*0es
( importante compreender as dierentes uncionalidades
lhost
O browser padrão do sistema será aberto com a página inicial do WampServer
yAdmin
O browser é aberto no phpMyAdmin, sistema que utilizaremos para criar e gerenci nosso banco de dados
Directory
O Explorer é aberto na pasta em que devem ser colocados os arquivos .php que criaremos
he
Trata-se do nosso servidor web que processa as requisições PHP. Ao selecionar opção exibe um sub-menu para configurações adicionais Exibe um sub-menu para configurações adicionais do PHP
L
Exibe um sub-menu para configurações adicionais do banco de dados MySQL
rind
Executa o webGrind que permite avaliar o desempenho de nosso sistema, para sa mais acesse o site https://github.com/jokkedk/webgrind
, Stop, Restart All
Estas opções permitem iniciar, parar ou reiniciar todos os serviços com apenas 1
ices
clique. Utilize essa opção se for feita alguma configuração adicional, ou se encontr problemas na execução de algum serviço
nline
Se o computador for reiniciado e tivermos que executar o WampServer a partir do menu Iniciar, devemos escolher esta opção para colocar o WampServer online, a do ícone é alterada de acordo com o status. Verde: online, Amarelo: em transição, Vermelho: offline.
Para escre!ermos nossos scripts PHP utili'aremos o otepadSS" dispon!el para do3nload em Nhttp://www.baixaki.com.br/download/notepad-.htm . Para -uem n+o con#ece" unciona como um superJ bloco de notas" gratuito" %cil e r%pido para e/ecutar e utili'ar. 7er!ir% muito bem para trabal#armos e desen!ol!ermos nossos scripts PHP. Para o desen!ol!imento de sistemas mais a!an*ados e comple/os e/istem IBEs ;Ambientes de Besen!ol!imento Integrado=" os -uais
de!idamente conigurados acilitam ainda mais a programa*+o de sistemas em PHP" a seguir temos uma lista com alguns e/emplos CodeLobster T desen!ol!ida especialmente para cria*+o de scripts PHP em ambiente )indo3s" & muito le!e e %cil de utili'ar
7ite Nhttp://www.codelobster.com/ Licen*a 2ree" a !ers+o comercial possui recursos adicionais ZendStudio , uma erramenta completa para -uem trabal#a com PHP ;rame3or adaptado sobre o Eclipse=
7ite N http://www.zend.com/en/ Licen*a 5rial Eclipse for PHP Developers , e/celente erramenta" altamente customi'%!el" le!e e r%pida. E/istem outras !ers0es do Eclipse adaptadas para outras linguagens" !oc pode utili'ar a !ers+o padr+o e instalar um plugin para o PHP.
7ite Nhttp://www.eclipse.org/ Licen*a 2ree NetBeans , ?tima erramenta" muito utili'ada na programa*+o 8a!a por acilitar a cria*+o de interaces mais amig%!eis" tamb&m pode ser utili'ada para o desen!ol!imento de sites com PHP
7ite Nhttp://netbeans.org/ Licen*a 2ree
Para testarmos o nosso ser!idor 3eb" !amos clicar no cone do )amp7er!er e escol#er a op*+o www directory . O )indo3s E/plorer abrir% como na imagem a seguir. Crie uma pasta c#amada e/emplos
Bentro dessa pasta" crie um no!o documento de te/to e renomeie para te/to.p#p. Aten*+o os ar-ui!os com scripts PHP de!em ter a e/tens+o.p#p para serem processados corretamente pelo ser!idor Apac#e. Abra este ar-ui!o com o otepadSS ;ou a erramenta -ue preerir= e insira o c?digo a seguir
Arquivo texto.php
este c?digo" podemos obser!ar a misturaJ de PHP com H56L. Ba lin#a 1 at& a lin#a " e nas lin#as 14 e 1:" temos apenas c?digo H56L. O c?digo PHP & sempre declarado entre as tags " lin#as U a 1Q. este e/emplo" & poss!el !isuali'ar tamb&m os < tipos de coment%rios -ue podemos a'er em PHP. a lin#a 11 temos o comando echo -ue permite gerar te/to para ser e/ibido no na!egador. Damos testar Para e/ecutar este c?digo" cli-ue no!amente no cone do )amp7er!er e ent+o em Local#ost" a seguinte tela ser% e/ibida no na!egador
o inal da p%gina" temos o ttulo Your Projects " cli-ue na pasta e/emplos" e escol#a o ar-ui!o -ue acabamos de criar te/to.p#p. Outra orma de e/ecutar & ir diretamente no na!egador e digitar local#oste/emploste/to.p#p O resultado ser%
Ao clicarmos com o bot+o direito do mouse e selecionarmos e/ibir c?digo onte" !eremos
Por que não visualizamos o código em PHP?
en#uma parte do script em PHP & e/ibido no na!egador. Isto por-ue o ser!idor l o c?digo em PHP" interpreta e gera o H56L correspondente" -ue ent+o & en!iado para o cliente" -ue & o respons%!el por processar e e/ibir o c?digo H56L. Dari%!eis Para declarar uma !ari%!el em PHP de!emos iniciar o nome dela com o smbolo V" seguido por letras ou W ;underscore=. A linguagem PHP & case-sensitive " o -ue signiica -ue ela dierencia letras mai@sculas e min@sculas" por e/emplo" a !ari%!el / & dierente de . Damos !er um e/emplo de !ari%!eis. Crie um ar-ui!o c#amado !aria!eis.p#p com o c?digo
Arquivo variaveis.php
este script" !isuali'amos nas lin#as < a : e/emplos de atribui*+o de !alores para as !ari%!eis. as lin#as U e X" temos a un*+o gettype -ue retorna o tipo da !ari%!el -ue o PHP reser!ou para a !ari%!el de acordo com o !alor -ue ela arma'ena. a lin#a 11" temos a un*+o isWint -ue testa o tipo da !ari%!el. 7imilar a esta temos outras como isWbool" isWstring e isWloat. PARA SABER MAIS O tipo booleano n+o & case sensiti!e" isto signiica -ue para atribuir um !alor !erdadeiro" por e/emplo" tanto a' utili'ar 5rue ou 5RFE ou true.
De$a agora a vídeo-aula 3 onde discutiremos um pouco mais sobre !ari%!eisM
Arra'
& utili'ado para arma'enar !%rios elementos do mesmo tipo. Al&m disso" podemos criar pares do tipo c#a!e Y !alor" !e$amos como unciona Para deinir um arra somente com !alores utili'amos
Arquivo vetor1.php
ote -ue o ndice do arra inicia,se em Z" por isso na lin#a Q & e/ibido o !alor
Arquivo vetor2.php
Constantes
Para deinirmos uma constante em PHP de!emos utili'ar a estrutura
Vejamos um exemplo:
Arquivo constante.php
+,-.O
Para criarmos uma un*+o em PHP basta utili'armos a pala!ra reser!ada function " segue a estrutura
Vejamos um exemplo:
Arquivo funcao.php
O/01#O%
O PHP : oerece todos os recursos para o desen!ol!imento de sites utili'ando programa*+o orientada a ob$etos. De$amos o e/emplo de
declara*+o de uma classe" cria*+o de uma inst[ncia e o acesso a atributos e m&todos
Arquivo classe.php
SAIBA MAIS O tema Orienta*+o a Ob$etos & muito e/tenso" !oc pode estudar mais em Nhttp://www.php.net/manual/pt_BR/language.oop5.php
Operadores
A tabela a seguir e/ibe os principais operadores utili'ados em PHP" sua descri*+o e um e/emplo. o decorrer do curso" !eremos a utili'a*+o destes operadores.
Estruturas de Controle As estruturas de controle de uma linguagem de programa*+o permitem controlar o lu/o de e/ecu*+o de nossos programas. Damos !er em PHP como trabal#ar com as estruturas condicionais ;decis+o= e com as estruturas de repeti*+o ;loop=. &
A instru*+o e/emplo
if
& utili'ada para tomada de decis+o. De$amos um
Arquivo if.php
Este c?digo mostra Q tipos de utili'a*+o do I2. a lin#a :" temos um teste -ue !eriica se o !alor da !ari%!el a & maior -ue b e ent+o e/ibe a mensagem. a lin#a 9" temos o camin#o alternati!o do I2" representado pelo comando else " -uando a condi*+o & alsa. 8% na lin#a 1" a estrutura mostra di!ersos elseif para testar dierentes condi*0es e e/ibir a mensagem correspondente. Agora & com !ocM Altere os !alores das !ari%!eis para !isuali'ar os dierentes lu/os tomados pelo script.
2"&$1
A estrutura de repeti*+o while " assim como a estrutura if " tamb&m trabal#a com uma condi*+o. A dieren*a entre as duas & -ue se a condi*+o or !erdadeira para o if " ele e/ecuta o bloco uma !e' e nowhile " ele e/ecuta o bloco en-uanto a condi*+o or !erdadeira. De$a o e/emplo
Arquivo while.php
O bloco entre as c#a!es icar% e/ecutando at& -ue a condi*+o da lin#a Q se$a alsa. De$a -ue na lin#a : a !ari%!el i & incrementada em uma unidade" o comando ViSS & e-ui!alente a Vi Y Vi S 1
O3
A estrutura de repeti*+o for e/ecutar% o bloco de comandos com um limite $% pr&,deinido" !e$amos sua estrutura
Agora um e/emplo -ue !oc poder% testar
Arquivo for.php
O31AC"
Este tipo de itera*+o & muito utili'ada em PHP" & um tipo de usado para estruturas do tipo Array . De$a
for especial
E/emplo
Arquivo foreach.php
%2C"
Ao in!&s de utili'armos se-uencias de i,else podemos utili'ar a estrutura s3itc# -uando estamos testando o !alor de uma !ari%!el" percebam como o c?digo utili'ando s3itc# ica bem mais claro do -ue di!ersos i,else
Arquivo switch.php
A0A4 5 P"P
A8A ;Asnc#ronous 8a!a7cript And 6L= permite atuali'armos o conte@do de uma p%gina sem precisar carreg%,la toda no!amenteM Damos !er um e/emplo para acilitar o entendimento do poder do A8A" precisaremos de < p%ginas" crie,as e ent+o sal!e com o nome especiicado ap?s o c?digo,onte
Arquivo ajax.php
Arquivo maiuscula.php
Abra o ar-ui!o a$a/.p#p em seu na!egador e digite algum te/to" note -ue sem recarregar toda a p%gina" a cada tecla digitada o ar-ui!o maiuscula.p#p & e/ecutado e ent+o o te/to em mai@sculo aparece na outra cai/a de te/to. Atualmente -uase todos os sites apresentam conte@do sendo e/ibido dessa orma" portanto & imprescind!el -ue -ual-uer desen!ol!edor )eb ten#a con#ecimentos de A8A e utili'e estes recursos para tornar os sites mais din[micos.
/anco de dados
Antes de iniciarmos a integra*+o do PHP com um banco de dados" !eremos alguns comandos b%sicos em 7>L ;7tructured >uer Language= -ue utili'aremos -uando esti!ermos trabal#ando com banco de dados. O 7>L & uma linguagem padr+o para acessar sistemas de gerenciamento de banco de dados relacionais inserindo" atuali'ando" e/cluindo e selecionando suas inorma*0es. 5odo banco de dados precisa de tabelas para organi'ar os dados" !amos !er a estrutura de como criar uma
E/emplo
este momento n+o se preocupe em testar estes scripts" mais tarde -uando come*armos o desen!ol!imento do nosso sistema !eremos na pr%tica a e/ecu*+o destes comandos. Preste aten*+o a estrutura desta tabela" os outros comando 7>L -ue !eremos a s+o baseados nesta estrutura. Agora para inserirmos registros nesta tabela de!emos usar o comando I7ER5 !e$amos
E/emplo
P�gina
Perceba neste e/emplo -ue n+o & obrigat?rio inserirmos !alores em todos os campos da tabela" na realidade no momento -ue criamos a tabela podemos deinir o -ue & obrigat?rio e o -ue n+o &M Damos agora atuali'ar estes dados" $% -ue algumas inorma*0es n+o oram completadas" com este ob$eti!o de!emos usar o comando FPBA5E
E/emplo para atuali'armos o endere*o e a cidade
Para selecionarmos inorma*0es de um banco de dados utili'amos o comando 7ELEC5
E/emplo para selecionarmos o nome dos clientes -ue !i!em em Londrina
Damos agora e/cluir este registro" a sinta/e do comando BELE5E &
E/emplo
Obser!e -ue no e/emplo acima utili'amos o campo nome e sobrenome para encontrarmos o cliente para e/clus+o" isto & muito incomum em sistemas reais" o -ue se costuma a'er & buscar o cliente por um c?digo ;identiicador= -ue se$a @nico. este e/emplo de e/clus+o" imaginando -ue nosso sistema ten#a di!ersos registros" ocorremos o risco e/cluir mais de um cliente" isso se o nome e sobrenome destes clientes orem o mesmoM Agora para e/cluir toda a tabela de!emos usar o comando BROP
E/emplo