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
(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:
- 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
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:
- 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
Questão 11
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
- As demais referências estão citados nos tópicos