Equipe Precisa Colocar Nome na Equipe?

From AdonaiMedrado.Pro.Br
Revision as of 04:48, 30 September 2008 by 200.223.68.17 (Talk) (A linguagem)

Jump to: navigation, search

PHP



Introdução

PHP significa Hypertext Preprocessor, é uma linguagem do tipo script, que pode ser imbutida ao HTML para gerar páginas mais dinâmicas. As características básicas do PHP são:

  • PHP é executado pelo servidor, o usuário não tem acesso ao código PHP.
  • PHP é free, pode ser executado em servidores OpenSource como o apache (http://www.apache.org/).
  • PHP oferece suporte a diversos banco de dados, potencializando o desenvolvimento de aplicações em PHP.
  • PHP é multi-plataforma, roda em qualquer sistema operacional.

História

Como surgiu

O ancestral do PHP foi criado em 1995 por Rasmus Lerdorf e era bem mais modesto do que o atual PHP. O objetivo de Rasmus era substituir alguns scripts em Perl usados em sua página, criando ferramentas simples típicas de páginas pessoais, como estatísticas de acesso. As necessidades dele foram crescendo e Rasmus decidiu fazer uma nova implementação em C, com mais recursos, chamado PHP/FI (Personal Home Page / Forms Interpreter). O código foi disponibilizado e alcançou um sucesso considerável em sua segunda versão. Em 1997 Andi Gutmans e Zeev Suraski, reescreveram o PHP, para usar em aplicações de comércio eletrônico desenvolvidas na faculdade. Proclamaram o novo código como a vesão 3.0 do PHP. O PHP 3.0 é a primeira versão do atual PHP, que está na versão 5. Por ser um código facilmente extensível, com uma quantidade muito grande de recursos, o PHP atraiu a atenção dos desenvolvedores e se tornou um grande sucesso.

Principais nomes

A linguagem PHP foi criada por Rasmus Lerdorf por volta de 1994. Ao finalizar a primeira versão, no início de 1995, Rasmus tornou-a open-source, dessa forma muitas pessoas passaram a contribuir em melhorias. Em seguida, Rasmus acrescentou funções (de acordo com as necessidades das aplicações web da época) ao PHP. Em 1997,Zeev Suraski e Andi Gutmans desenvolveram o analisador do PHP3. O PHP passou a estar sobre a orientação de um grupo. Suraski e Gutmans reescreveram o PHP algum tempo depois, originando o PHP4, agora utilizando tecnologia Zend. No ano de 2004, foi lançado o PHP5 incorporando o Zend Engine 2.0. As últimas versões do PHP foram desenvolvidas pelo The PHP Group (que é mantido pela Zend Technologies – The PHP Company). Pagina oficial da Zend Technologies: http://www.zend.com/en/

Versões

(faltam as referencias)

PHP/FI
  • Usava variáveis no estilo Perl, interpretação automática de variáveis vindas de formulário e sintaxe embutida no HTML.
  • A sintaxe era parecida com Perl, mas muito limitada e pouco inconsistente.
  • Trazia um interpretador de comandos SQL chamado de “Forms Interpreter”.
  • Essa versão não era usada mais somente para contruir páginas pessoais e sim criar websites inteiros.
  • Os scripts são colocados diretamente nos arquivos HTML. Isso aumentou o desempenho dos sites. Sem falar na possibilidade de trabalhar com banco de dados.
PHP 3
  • Foi totalmente reescrita, passando a ter uma sintaxe muito mais consistente.
  • Contava com recurso de orientação a objetos, tinha herança e só podia implementar propriedades e métodos.
  • Oferecia uma infra-estrutura sólida para diversos bancos de dados, protocolos e APIs.
PHP 4
  • Foi baseada na engine “Zend Engine”
  • Possui suporte para muitos servidores web, sessões HTTP, buffer de saída, maneiras mais seguras de manipular input de usuários e muitas construções novas na linguagem.
  • Foi introduzido as variáveis ($_GET, $_POST, $_SESSION,etc)
PHP 5
  • Possui um novo modelo de orientação a objeto. Foram reformulados os contrutores e criaram os construtores,visibilidade de acesso, abstração de objeto e interfaces de objetos.

PHP e as aplicações comerciais

O PHP é largamente usado no desenvolvimento de aplicações comerciais, principalmente em sistemas web, de pequeno a grande porte, e frameworks. A lista de sites/aplicações desenvolvidas em PHP é extensa, alguns exemplos são:


Grande parte dos exemplos é OpenSource, com suporte comercial. Este site contém uma imensa lista de aplicações desenvolvidas em PHP http://www.hotscripts.com/PHP/Scripts_and_Programs/index.html.

Alguns exemplos de grandes sites desenvolvidos em PHP é o wikipedia (http://wikipedia.org) e o Yahoo! (http://br.yahoo.com/).

Como funciona o PHP

Linguagem Interpretada

Questão 5

Independente de Máquina?

Questão 5

Requisitos Mínimos

Questão 5

A linguagem

Sintaxe basica

O código em PHP começa com a tag ‘<?php’ e termina com ‘?>’ , ou seja, tudo o que estiver fora das tags serão ignorados pelo interpretador PHP.

<?php
 echo Código em PHP'; 
?>


Variáveis

As variáveis em php começam com $ e são declaradas no momento em que é atribuído seu valor (inteiro, string, array, etc.), ou seja, não é necessário indicar o nome e o tipo como em C. O php é case sensitive.

<?php
$x = 10;
$str = “teste”;
$a[0] =  1;
$a[1] = 2;
?> 

Instruções condicionais

IF...ELSE

<?php
   if (expressão){
      //Entra aqui se a expressão for verdadeira
   }
   else{ 
     //Entra aqui se a expressão for falsa
   }
?>

SWITCH

<?php
  switch (variável) { 
           case valor1:
                     //Bloco de comandos Comandos...
                     break;
           case valor2: 
                    //Bloco de comandos Comandos...
                    break; 
           case valor3:
                    //Bloco de comandos Comandos...
                    break;
           default:
                    //Bloco de comandos executado apenas se nenhuma
                   //das condições anteriores forem aceitas...
}
?>

Instruções de repetição

WHILE

<?php
 while(condição){
   //comandos
 }
?>

Ex.:

<?php
  $i = 0;
  while ($i <= 10) {
    echo $i++;  
  }
?>

DO...WHILE

<?php
 do{
 //comandos
}while(condição);
?>

Ex.:

<?php
  $i = 0;
  do {
    echo $i;
  } while ($i > 0);
?>

FOR

<?php
  for (expressao1; expressao2; expressao3){
     //instruções
  }
?>

Assim como em C, cada uma das expressões podem conter varios comandos, sempre separados por virgulas, ou não conter nenhum.

Ex.:

 <?php
   for ($i = 1; $i <= 10; $i++) {
     echo $i;
 }
 ?>

 <?php 
   for ($i = 0, $j = 10; $i <= 10; $j >= 0, echo $i, $i++,$j--);
 ?>

FOREACH

Maneira simples de manipular e iterar matrizes.

<?php
  foreach ( array as $valor){
     //instruções
  }
  foreach ( array as $chave => $valor){
     //instruções
}
?>

Ex.:

<?php
  $vetor = array(1, 2, 3, 4);
  foreach ($vetor as &$valor) {
     $valor = $valor * 2;
  }
?> 
<?php
  $vetor = array("um", "dois", "três");
  foreach ($vetor as $chave => $valor) {
     echo "Chave: $chave; Valor: $valor
\n"; } ?>

BREAK/CONTINUE

Suas funções são similares às de C. Break e continue aceitam um argumento numérico opcional que diz quantas estruturas devem ser quebradas(break) ou quantos loops devem saltar(continue).

Ex:

<?php
 $i = 0;
 while (++$i) {
   switch ($i) {
          case 1:
             echo "i=1\n";
             break 1;  /* Sai switch. */
          case 10:
             echo "i=10\n";
             break 2;  /* Sai do switch e while. */
          default:
             break;
   }
 }
 ?>
<?php
 $i = 0;
 while ($i++ < 5) {
    while (1) {
       while (1) {
           continue 3;
       }
       echo "Nunca passa por aqui.";
   }
   echo "Nunca passa por aqui.";
 }
 ?>

Sintaxe alternativa

PHP possui uma sintaxe alternativa para algumas estruturas como if, while, for, foreach e switch. A forma básica é colocar ":" no lugar da chave de abertura "{" e endif,endwhile,endfor, endforeach e endswitch no lugar da chave fechamento "}".

Ex.:

<?php
  if ($a == 5):
     echo "a igual a 5";
     elseif ($a == 6):
        echo "a igual a 6";
  else:
     echo "a não é nem 5 nem 6";
 endif;
?>

Funcões

<?php
 function nome_função ($arg_1, $arg_2, ..., $arg_n) {
      //Bloco de comandos...
       return $valor_retorno;
 } 
?>

As funções podem ser definidas condicionalmente como no exemplo a seguir:

<?php
   $flag = true;
   //funcaoX ainda nao existe
   if ($flag){
      function funcaoX ()
   {
   //funcaoX passa a existir
?>

Ou funções dentro de funções:

<?php
 function funcaoX(){
    function funcaoY(){
     //funcaoY só existe quando funcaoX é chamada
    } 
 }
 funcaoX();
 //agora funcaoY existe e pode ser chamada
 funcaoY();
?>

Classes e Objetos

Uma classe pode ser definida da seguinte forma:

<?php
  class NomeDaClasse{
      //atributos
      function Metodo(){
      }
  }
?>

Ex.:

<?php
 class pessoa{
   var $idade; 
   function aniversario(){
       $this->idade += 1;
   }
 }
?>

OBJETOS

<?php
  $nome_objeto = new NomeDaClasse;
  $nome_objeto->Metodo();
?>

Ex:

<?php
  $joao = new pessoa;
  $joao->aniversario();
?>

Definição de comentários

<?php
   // Comentario estilo C++
   /* Comentario usando 
      varias linhas */
   # Comentario estilo shell
?>

Arquivos

Aqui estão algumas funções usadas para manipular arquivos em PHP: fopen("arquivo",modo) -> Abrir um arquivo onde: arquivo - string contendo o nome do arquivo modo - especifica o modo de abertura(leitura,escrita,etc...) A funcao é semelhante a função do C.

Ex.:

<?php 
  $file = fopen(teste.txt,”r+”);
?>

fclose("arquivo") -> Fecha o arquivo.

Ex.:

<?php 
 fclose($file); 
?>

As funções para escrever o arquivo são :

fwrite()
fputs();

Para ler um arquivo usa-se:

fread()
fgets();

Banco de Dados

O PHP tem suporte a varios bancos de dados. Para cada banco de dados existe um conjunto de funções especificas de cada um para interagir com o PHP. Para resolver essa desvantagem, existem varias bibiotecas de abstração de dados tais como: DBX, ADODB, Metabase, PEAR::DB, PEAR::MDB e PHPLIB. Com essas bibliotecas pode-se mudar o banco de dados sem precisar mudar todo o script. A unica desvantagem é o tempo de acesso ao banco que fica um pouco mais lento.

Dispositivos externos

Impressoras

Para o PHP se comunicar com a impressora, usa-se as 'Printer functions'(disponiveis apenas para Windows 9.x, ME, NT4 e 2000). Para habilitar as funções basta adicionar a linha abaixo no arquivo php.ini:

extension=php_printer.dll

As funções estão documentadas nesse link: http://www.php.net/printer

Bibliotecas

include() e require()

O PHP pode incluir arquivos no seu código atual usando os construtores include() e o require(). Esses arquivos incluídos podem servir como um a biblioteca php. O include() inclui e executa um trecho opcional de codigo. O require() faz a mesma coisa que o include() mas ocorre um Erro fatal(para a execução) se o arquivo requerido não existir. Existe ainda o require_once() onde tem a mesma função que o require, porém evita que o arquivo seja incluido novamente. Ex.:

<?php
 include('funcoes.php');
 require('funcoes.php');
 require_once('funcoes.php'); 
?>

Interação com outras linguagens

Ferramentas

Ferramentas de Documentação

O PHP tem a seu dispor algumas ferramentas para auxiliar o usuário na documentação do código, as principais são:

IDE's

Por ser uma linguagem muito usada no mundo todo, existem muitos IDE's com suporte a PHP. Um dos principais IDE's para PHP, senão o principal, é o Zend Studio for Eclipse, desenvolvido pela Zend Technologies, a mesma empresa desenvolvedora do PHP. É voltado para Eclipse, dá suporte a PHPDocumentor, SubVersion, Integração com os principais banco de dados, entre outros. Alguns dos principais IDE's e suas características são:

Zend Studio for Eclipse
  • Fabricante: Zend Technologies
  • Site: http://www.zend.com/en/products/studio/
  • Preço: $ 350 com um ano de suporte, $ 667 com 3 anos de suporte.
  • Licensa Propietária
  • Características:
    • Suporte a PHP 4 e 5
    • Destacador de sintaxe
    • Suporte a phpDocumentor
    • Suporte a SubVersion
    • Suporte aos principais bancos de dados
Komodo IDE
  • Fabricante: ActiveState.
  • Site: http://www.activestate.com/Products/komodo_ide/index.mhtml
  • Preço: $295.00
  • Licensa Propietária
  • Características:
    • Escrito em Python, JavaScript, XUL
    • Suporta Perl, PHP, Python, Ruby, Tcl, JavaScript, CSS, HTML e XML
    • Ferramenta Auto-completar
    • Destacador de sintaxe
    • Debugger para PHP e as demais linguagens
Adobe Dreamweaver
  • Fabricante: Adobe
  • Site: http://www.adobe.com/support/dreamweaver/
  • Preço: $468.00
  • Licensa Propietária
  • Características:
    • Destacador de Sintaxe
    • Autocompleta funções e mostra a documentação destas.
    • Escrito em C++
    • Suporta as principais linguagens voltadas para web
NuSphere PHPEd
  • Fabricante: NuSphere
  • Site: http://www.nusphere.com/
  • Preço: $249.00
  • Licensa Propietária
  • Características
    • Disponível para Linux
    • Ferramente de conexão ao banco de dados
    • Destacador de sintaxe
PHPEdit
  • Fabricante: WaterProof SARL
  • Site: http://www.phpedit.com
  • Preço: 89.00 €
  • Licensa: Proprietária
  • Características:
    • Suporta CSS, HTML, JavaScript, INI, PHPEditScript, PHP, PlainText, SQL, XML, and XSLT
    • Destacador de sintaxe
    • Ferramente de autocompletar
    • Escrito em Delphi
    • Debugger
    • Gerador de Help
gPHPedit
  • Fabricante: Andy Jeffries
  • Site: http://www.gphpedit.org/
  • Preço: Free
  • Licensa: Livre
  • Características:
    • Roda em qualquer plataforma
    • Destacador de sintaxe (PHP/HTML, CSS, SQL)
    • Ferramente de autocompletar
    • Escrito em C
PHPEclipse
  • Fabricante: Opensource
  • Site: http://www.phpeclipse.de/
  • Preço: Free
  • Licensa: Livre
  • Características:
    • Plugin para Eclipse
    • Multi-plataforma
    • Destacador de sintaxe
    • Auto-completar
    • Debugger
    • Escrito em Java

Existem inúmeros IDE's para PHP, as citadas acimas são alguns dos principais exemplos de IDE's livres e comerciais. Uma lista mais completa de IDE's para PHP pode ser encontrada nos sites:

O Que PHP pode fazer

Basicamente com o PHP é possível se fazer qualquer coisa.

Aplicações Web

A linguagem PHP basicamente foi desenvolvida para gerar conteúdo dinâmico para a web, dessa forma, é normal que seja essa a principal utilização da linguagem.

Aplicações Desktop

Por ser uma linguagem desenvolvida para aplicações web, o PHP não se destaca em aplicações desktop com interfaces gráficas, sendo necessário um usuário mais experiente para desenvolver este tipo de aplicações, além de utilizar o PHP-GTK, uma extensão do PHP (não disponibilizada na distribuição oficial). Página oficial do PHP-GTK: http://gtk.php.net/

Controles Personalizados

Questão 9

Padrão PHP

Questão 11

Referências