Equipe Precisa Colocar Nome na Equipe?
PHP
Contents
- 1 Introdução
- 2 História
- 3 PHP e as aplicações comerciais
- 4 Como funciona o PHP
- 5 A linguagem
- 6 Ferramentas
- 7 O Que PHP pode fazer
- 8 Padrão PHP
- 9 Referências
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:
- Drupal - http://drupal.org/ (Open Source)
- Typo3 - http://typo3.com/ (Open Source)
- ATK framework - http://www.atk-framework.com/ (Open Source)
- Zend Framework - http://framework.zend.com/ (Open Source)
- AdMan - http://www.formfields.com/adManArea/adManProduct.php
- Jointar - http://www.jointar.com/
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:
- phpDocumentor: É a ferramenta opensource padrão de auto-documentação. Também conhecido como phpdoc, é escrito em PHP e similar ao JavaDoc. Capaz de gerar a documentação completa de páginas em PHP. Mais informações no site: http://www.phpdoc.org/.
- PHPXref - Mais uma ferramenta opensource, gera a documentação no formato HTML. Escrito em Perl. Mais informações: http://phpxref.sourceforge.net/.
- PHP Documentation Generator - Mais um opensource. Escrito em Perl, similar ao Javadoc. Mais informações: http://freshmeat.net/projects/phpdocgen/.
- PHP Documentation Tool - Software comercial, desenvolvido pela Winnersh Triangle Web Solutions Limited. Disponível para Trial.Mais informações: http://www.winnershtriangle.com/w/Products.PHPDocumentationTool.asp.
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 de padronização e eficiência de implementação 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.
The Standard PHP Library - http://www.php.net/~helly/php/ext/spl/
Referências
- http://en.wikipedia.org/wiki/PHP
- http://www.php.net/
- http://en.wikipedia.org/wiki/Adobe_Dreamweaver
- http://en.wikipedia.org/wiki/ActiveState_Komodo
- http://en.wikipedia.org/wiki/Zend_Studio
- http://en.wikipedia.org/wiki/GPHPedit
- http://en.wikipedia.org/wiki/PHPEclipse
- http://en.wikipedia.org/wiki/PHPEclipse
- http://blog.carlos-rodrigues.com/2005/05/ide-para-php.html
- http://gtk.php.net/manual1/pt_BR/html/intro.whatis.php.history.html
- http://www.php.net/history
- http://pt.wikibooks.org/wiki/Aplicativos_em_PHP/Introdu%C3%A7%C3%A3o/Hist%C3%B3ria
- http://xoopscube.com.br/php.php
- http://www.moko.ru/doc/php/doc.html#history
- http://br.php.net/manual/pt_BR/language.basic-syntax.php
- http://pt.wikibooks.org/wiki/Aplicativos_em_PHP
- http://www.phpmania.org/modules.php?name=php_how_to&page=language.types.html
- http://fdweb.com.br/acessando-banco-de-dados-usando-php-e-adodb/
- http://www.prophp.com.br/artigo_13.php
- http://br.php.net/manual/pt_BR/function.include.php
- http://novatec.com.br/livros/phpgtk/capitulo9788575221105.pdf
- As demais referências estão citados nos tópicos