Equipe Precisa Colocar Nome na Equipe?

From AdonaiMedrado.Pro.Br
Revision as of 14:33, 30 September 2008 by 189.104.222.116 (Talk) (Referências)

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

PHP/FI

Foi criado em 1995 por Rasmus Lerdorf com a sintaxe baseada em Perl e nomeou os scripts de “Personal Home Page Tools”. Com a necessidade de mais funcionalidades, ele criou um interpretador de comandos SQL que foi chamado de “Forms Interpreter” e juntou ao PHP, assim criando o PHP/FI. Com a possibilidade de trabalhar com banco de dados, o PHP/FI passou a ser usado não somente para construir páginas pessoais, como também websites inteiros. Outra característica do PHP/FI era que os scripts eram colocados diretamente nos arquivos HTML o que aumentou o desempenho dos sites. Sua sintaxe era parecida com Perl mas muito limitada e um pouco inconsistente. Possuía também interpretação automática de variáveis vinda dos formulários.


PHP 3

Foi totalmente reescrita por Andi Gutmans e Zeev Suraski passando a ter uma sintaxe muito mais consistente. Foi também a primeira versão que se assemelha com o PHP de hoje. Seu grande atrativo era a grande capacidade de extensibilidade. Ele oferecia também uma infra-estrutura sólida para vários banco de dados, protolocos e APIs. Alem disso, no PHP3 foi introduzido o suporte a sintaxe para orientação à objetos. Tudo isso atraiu milhares de desenvolvedores, o que tornou o PHP um grande sucesso.


PHP 4

O PHP 4 foi baseado na engine 'Zend’ e trouxe varias características novas. Dentre elas estão o suporte a muitos servidores Web, sessões http(variável $_SESSION), maneiras seguras de manipular dados (variáveis $_GET , $_POST), buffer de saída e muitas novas construções na linguagem. O objetivo dessa nova versão era melhorar o desempenho das aplicações complexas e melhorar a modularidade do código base.


PHP 5

É a atual versão do PHP. Ele conta com uma nova engine (Zend Engine 2.0) e com isso trouxe um novo modelo de orientação a objetos. Foram reformulados os contrutores e criaram os destrutores,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

PHP é uma linguagem de programação desenvolvida para ser interpretada, não havendo necessidade de compilação para qualquer ferramenta extra. Entretanto, recentemente foi lançado um compilador PHP, o Roadsend PHP Compiler. Existem outros, mas o Roadsend é o de maior destaque. Página oficial do Roadsend PHP Compiler: http://www.roadsend.com/home/index.php?SMC=1

Independente de Máquina?

A aplicação web do PHP é multi-plataforma, funcionando na maioria dos sistemas operacionais (Linux, muitas variantes do Unix, Microsoft Windows, Mac OS X, RISC OSe outros), dando liberdade de escolha do sistema operacional e o servidor web. Uma aplicação web feita em PHP roda em qualquer lugar sem acrescentar configurações. Porém, o PHP-GTK, apesar de rodar em funcionar em vários sistemas operacionais, não é de fato multi-plataforma, sendo necessário algumas linhas de comandos a mais; além disso, sua aplicação deve estar configurada na máquina em que está sendo utilizada.

Requisitos Mínimos

Os requisitos para se rodar PHP variam de acordo com o que o usuário deseja fazer. Para a criação de websites e aplicações web, necessita-se do próprio PHP, um servidor web e um browser web (cliente web). As aplicações são executadas no browser. Se o usuário deseja fazer uma aplicação desktop (GUI), ele precisará do PHP-GTK. Nesse caso, a saída não é em HTML e sim janelas (que pode ter conectividade com o servidor). Porém o PHP-GTK precisa estar instalado em cada maquia-cliente que utilizará a aplicação.

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'); 
?>

Integração entre linguagens

PHP pode interagir com Java utilizando o Java/Bridge. O PHP/Java Bridge é um protocolo baseado em XML que pode ser usado para conectar um script PHP com Java. Ele permite que as calsses do Java possam ser acessadas de dentro do PHP e vice-versa. Mais informações em http://php-java-bridge.sourceforge.net/doc/

Existe também uma integração entre o PHP e o Flash(action script) onde o flash chama um arquivo php e com isso pode carregar suas variáveis. Mais informações em http://pt.wikibooks.org/wiki/Aplicativos_em_PHP/Recursos_Extras/Integra%C3%A7%C3%A3o_com_Flash

Para que o PHP integre-se com o .NET é preciso utilizar um compilador PHP para .NET chamado Phalanger, o qual é integrado ao Visual Studio. Outro jeito mais simples é a utilização de pacotes .NET numa aplicação PHP Para saber mais sobre o Phalanger acesse http://php-compiler.net/doku.php


Além dessa linguagens, o PHP também interage com javascript onde as 2 linguagens podem trocar funções e variáveis. Para isso basta adicionar o codigo em javascript dentro do php ou criar um novo arquivo e depois adicionar esse arquivo usando um inclide().

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

A linguagem PHP não possui uma especificação formal de padronização. Por sua sintaxe se aproximar de C/C++, muitas pessoas utilizavam o padrão C++ como padrão para os códigos em PHP. Para resolver problemas comuns e melhorar a eficiência de acesso a alguns tipos de dados foi criada a Biblioteca Padrão de PHP (The Standard PHP Library – SPL), uma coleção de classes e interfaces que é usada como uma forma de “padronização” da linguagem. Porém ela ainda é muito pouco utilizada, um dos principais motivos é o fato de não possui uma documentação oficial.

The Standard PHP Library - http://www.php.net/~helly/php/ext/spl/

Referências