Tecnologias server-side: PHP
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 10, 21-03-2013
Um pouco de história

1995

  • Rasmus Lerdorf desenvolve Scripts CGI em Perl (contador de
    visitantes da sua página)
  • oferece esses script sob o nome – Personal Home Page

1997

  • PHP 2.0 (Personal Home Page/Form Interpreter) - utiliza linguagem C
  • popularidade cresce exponencialmente
  • desenvolve-se uma comunidade de programadores/utilizadores

1998

  • PHP 3.0, em 1999 tem já mais de 1 milhão de utilizadores
  • Andi Gutmans, Zeev Suraski
Um pouco de história

2000

  • PHP 4.0 passa a significar PHP: Hypertext Preprocessor
  • motor/parser reescrito -> Zend Engine
  • introduz: gestão recursos, OOP e gestão de sessões

2004
  • PHP 5.0 (versão atual é a 5.4.##)
  • maior suporte a OOP com desenvolvimento de frameworks (Zend)
  • suporte a XML, Web Services, …
  • utilizada em mais de 20 milhões de web sites…

20??
  • PHP 6.0, ainda em desenvolvimento…
Arquitetura

funciona numa plataforma Web

      • Exemplo: Apache Web Server + Módulo PHP

permite o desenvolvimento de aplicações Web numa
arquitetura de 3 camadas
Apresentação
• HTML,	
  CSS,	
  Javascript,	
  AJAX,	
  …

Lógica
• PHP

Dados
• MySQL




a linguagem PHP é processada no servidor (server-side)

está normalmente embebida em páginas HTML e gera HTML!
Caraterísticas

simples de usar, generalidade das funções está disponível por defeito

poderosa, centenas de livrarias disponíveis (acesso facilitado a funções)

flexível, permite a livre escolha das soluções para a implementação das
aplicações Web (por exemplo: escolher livremente o SGBDR a utilizar)

gratuita

desenvolvida colaborativamente, maior evolução
Funcionamento

todo o PHP (embebido no HTML) é processado no servidor




para o browser (client-side) será enviada uma página apenas com HTML
 <body>
    <p>Hello World</p>
 </body>
Páginas estáticas

uma página estática é uma página cujo conteúdo e aspeto foram
determinados pelo seu autor.
  • o conteúdo e o aspeto são constantes independentemente de quem visita
    a página, quando a visita ou como a visita
  • alterações numa página estática só podem ser efectuadas através da
    edição do código
  • exemplo: uma página HTML que se encontra publicada num servidor Web
Páginas dinâmicas

uma página dinâmica para a Web é uma página cujo conteúdo e aspeto
não são totalmente determinados no seu estado inicial (isto é, quando foi
publicada pelo seu autor)

  • os conteúdos e aspeto são determinados após um utilizador executar um
    pedido da mesma, ao servidor Web, através de um browser
  • os conteúdos e aspeto da página podem variar de pedido para pedido
  • exemplo: página HTML com PHP embebido

no momento em que existe um pedido de acesso à página, o PHP
embebido é executado no servidor para gerar a página final
Páginas dinâmicas

existem dois tipos de tecnologias dinâmicas:

  • server-side (executado no servidor)
     • PHP
     • .Net (ASP)
     • JSP
     • Perl
     • ...
  • client-side (executado no browser)
     • JavaScript
     • DART
     • Flash
     • ...
Como saber o que temos disponível no servidor?

para ver a configuração do PHP atualmente instalada num qualquer
servidor Web

<?php phpinfo(); ?>




mostra módulos extras ativos no PHP

o PHP no Apache é configurado através do ficheiro php.ini
estrutura e sintaxe

sintaxe a utilizar


   <body>
!   ! <?php echo "Hello World"; ?>
!   </body>



separação das instruções “;”


   <body>
!   ! <?php
!   !     echo "Hello World";
!   !     echo “Peace and Love!!!!“;
!   ! ?>
    </body>
estrutura e sintaxe

múltiplos blocos de código PHP numa página HTML


     <body>
    ! ! <?php echo "Hello World"; ?>

!    !   <p> Outro HTML</p>

!     ! <?php echo “Peace and Love"; ?>
!    </body>
Comentários

comentários

    <?php
       // Este é um comentário
       // Este é outro comentário
       echo "Hello World";

         /* Este é outro comentário
            que ocupa mais do que uma linha */
         echo "Olá Mundo";
    ?>


comentários no estilo shell unix


    <?php
!    !   # Este é um comentário
!    !   # Este é outro comentário
!    !   echo "Hello World";
!    ?>
case sensitive?

Case sensitive (both user defined and PHP defined)

  • variables
  • constants
  • array keys
  • class properties
  • class constants

Case insensitive (both user defined and PHP defined)

  • functions
  • class constructors
  • class methods
  • keywords and constructs (if, else, null, foreach, echo etc.)

                                        http://the-echoplex.net/log/php-case-sensitivity
Output

<?php print("<p>Hello World</p>"); ?>



<?php print("<p>Hello World. I’m $name.</p>"); ?>



<?php echo "<p>Hello World. I’m $name.</p>"; ?>
Output

<?php printf(“Bar: %d garrafas.”, $bottles); ?>
  • identificador de tipo/formato da variável -> %d (inteiro)
  • mistura/formata a parte dinâmica e parte estática da string



<?php $MeuTexto = sprintf(“Preço: %.2f.”, $Price); ?>
  • igual ao printf mas devolve resultado para uma variável do tipo string
Output

<?php printf(“Bar: %d garrafas.”, $bottles); ?>


   
   Se $bottles = 6.113 -> “Bar: 6 garrafas.”



<?php $MeuTexto = sprintf(“Preço: %.2f.”, $Price); ?>


   
   Se $Price = 25.9183 -> $MeuTexto = “Preço: 25.92.”
printf e sprintf

especificação do tipo de dados para a formatação:

  • %b -> número binário
  • %c -> caracter correspondente ao código ASCII
  • %d -> número inteiro com sinal
  • %f ->número em vírgula flutuante
  • %o -> número em octal
  • %s -> string
  • %u -> número inteiro sem sinal
  • %x -> número hexadecimal em minúsculas
  • %X -> número hexadecimal em maiúsculas

LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP

  • 1.
    Tecnologias server-side: PHP CarlosSantos LabMM 4 - NTC - DeCA - UA Aula 10, 21-03-2013
  • 2.
    Um pouco dehistória 1995 • Rasmus Lerdorf desenvolve Scripts CGI em Perl (contador de visitantes da sua página) • oferece esses script sob o nome – Personal Home Page 1997 • PHP 2.0 (Personal Home Page/Form Interpreter) - utiliza linguagem C • popularidade cresce exponencialmente • desenvolve-se uma comunidade de programadores/utilizadores 1998 • PHP 3.0, em 1999 tem já mais de 1 milhão de utilizadores • Andi Gutmans, Zeev Suraski
  • 3.
    Um pouco dehistória 2000 • PHP 4.0 passa a significar PHP: Hypertext Preprocessor • motor/parser reescrito -> Zend Engine • introduz: gestão recursos, OOP e gestão de sessões 2004 • PHP 5.0 (versão atual é a 5.4.##) • maior suporte a OOP com desenvolvimento de frameworks (Zend) • suporte a XML, Web Services, … • utilizada em mais de 20 milhões de web sites… 20?? • PHP 6.0, ainda em desenvolvimento…
  • 4.
    Arquitetura funciona numa plataformaWeb • Exemplo: Apache Web Server + Módulo PHP permite o desenvolvimento de aplicações Web numa arquitetura de 3 camadas Apresentação • HTML,  CSS,  Javascript,  AJAX,  … Lógica • PHP Dados • MySQL a linguagem PHP é processada no servidor (server-side) está normalmente embebida em páginas HTML e gera HTML!
  • 5.
    Caraterísticas simples de usar,generalidade das funções está disponível por defeito poderosa, centenas de livrarias disponíveis (acesso facilitado a funções) flexível, permite a livre escolha das soluções para a implementação das aplicações Web (por exemplo: escolher livremente o SGBDR a utilizar) gratuita desenvolvida colaborativamente, maior evolução
  • 6.
    Funcionamento todo o PHP(embebido no HTML) é processado no servidor para o browser (client-side) será enviada uma página apenas com HTML <body> <p>Hello World</p> </body>
  • 7.
    Páginas estáticas uma páginaestática é uma página cujo conteúdo e aspeto foram determinados pelo seu autor. • o conteúdo e o aspeto são constantes independentemente de quem visita a página, quando a visita ou como a visita • alterações numa página estática só podem ser efectuadas através da edição do código • exemplo: uma página HTML que se encontra publicada num servidor Web
  • 8.
    Páginas dinâmicas uma páginadinâmica para a Web é uma página cujo conteúdo e aspeto não são totalmente determinados no seu estado inicial (isto é, quando foi publicada pelo seu autor) • os conteúdos e aspeto são determinados após um utilizador executar um pedido da mesma, ao servidor Web, através de um browser • os conteúdos e aspeto da página podem variar de pedido para pedido • exemplo: página HTML com PHP embebido no momento em que existe um pedido de acesso à página, o PHP embebido é executado no servidor para gerar a página final
  • 9.
    Páginas dinâmicas existem doistipos de tecnologias dinâmicas: • server-side (executado no servidor) • PHP • .Net (ASP) • JSP • Perl • ... • client-side (executado no browser) • JavaScript • DART • Flash • ...
  • 10.
    Como saber oque temos disponível no servidor? para ver a configuração do PHP atualmente instalada num qualquer servidor Web <?php phpinfo(); ?> mostra módulos extras ativos no PHP o PHP no Apache é configurado através do ficheiro php.ini
  • 11.
    estrutura e sintaxe sintaxea utilizar <body> ! ! <?php echo "Hello World"; ?> ! </body> separação das instruções “;” <body> ! ! <?php ! ! echo "Hello World"; ! ! echo “Peace and Love!!!!“; ! ! ?> </body>
  • 12.
    estrutura e sintaxe múltiplosblocos de código PHP numa página HTML <body> ! ! <?php echo "Hello World"; ?> ! ! <p> Outro HTML</p> ! ! <?php echo “Peace and Love"; ?> ! </body>
  • 13.
    Comentários comentários <?php // Este é um comentário // Este é outro comentário echo "Hello World"; /* Este é outro comentário que ocupa mais do que uma linha */ echo "Olá Mundo"; ?> comentários no estilo shell unix <?php ! ! # Este é um comentário ! ! # Este é outro comentário ! ! echo "Hello World"; ! ?>
  • 14.
    case sensitive? Case sensitive(both user defined and PHP defined) • variables • constants • array keys • class properties • class constants Case insensitive (both user defined and PHP defined) • functions • class constructors • class methods • keywords and constructs (if, else, null, foreach, echo etc.) http://the-echoplex.net/log/php-case-sensitivity
  • 15.
    Output <?php print("<p>Hello World</p>");?> <?php print("<p>Hello World. I’m $name.</p>"); ?> <?php echo "<p>Hello World. I’m $name.</p>"; ?>
  • 16.
    Output <?php printf(“Bar: %dgarrafas.”, $bottles); ?> • identificador de tipo/formato da variável -> %d (inteiro) • mistura/formata a parte dinâmica e parte estática da string <?php $MeuTexto = sprintf(“Preço: %.2f.”, $Price); ?> • igual ao printf mas devolve resultado para uma variável do tipo string
  • 17.
    Output <?php printf(“Bar: %dgarrafas.”, $bottles); ?> Se $bottles = 6.113 -> “Bar: 6 garrafas.” <?php $MeuTexto = sprintf(“Preço: %.2f.”, $Price); ?> Se $Price = 25.9183 -> $MeuTexto = “Preço: 25.92.”
  • 18.
    printf e sprintf especificaçãodo tipo de dados para a formatação: • %b -> número binário • %c -> caracter correspondente ao código ASCII • %d -> número inteiro com sinal • %f ->número em vírgula flutuante • %o -> número em octal • %s -> string • %u -> número inteiro sem sinal • %x -> número hexadecimal em minúsculas • %X -> número hexadecimal em maiúsculas