PHP: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Biktora (discussão | contribs)
Linha 139: Linha 139:
| Local de publicação = São Paulo
| Local de publicação = São Paulo
| Editora = Novatec
| Editora = Novatec
| Ano = 2007(((((((((((((((((((((((((((((((((((()))))))))))))))))))))))))))))))))))))))))))))))))
| Ano = 2007
| Páginas = 464
| Páginas = 464
| ID = ISBN 978-85-7522-141-9
| ID = ISBN 978-85-7522-141-9

Revisão das 12h42min de 4 de março de 2010

PHP
Paradigma reflexão, orientação a objeto
Surgido em 1995
Última versão 5.3.1 (19 de Novembro, 2009)
Criado por Rasmus Lerdof
Estilo de tipagem dinâmica
Principais implementações Linguagem interpretada
Influenciada por Perl, C

PHP (um acrónimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web, como por exemplo a Wikipédia.

Histórico

A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdof, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal. Em 1997 foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL.

Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de orientação a objetos, que dava poder de alcançar alguns pacotes, tinha herança e dava aos desenvolvedores somente a possibilidade de implementar propriedades e métodos.

Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando mais poder à máquina da linguagem e maior número de recursos de orientação a objetos. O problema sério que apresentou o PHP 4 foi a criação de cópias de objetos, pois a linguagem ainda não trabalhava com apontadores ou handlers, como são as linguagens Java , Ruby e outras.

O problema fora resolvido na versão atual do PHP, a versão 5, que já trabalha com handlers. Caso se copie um objeto, na verdade copiaremos um apontador, pois, caso haja alguma mudança na versão original do objeto, todas as outras também sofrem a alteração, o que não acontecia na PHP 4.

Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalação e uso em servidores web. Diversos módulos são criados no repositório de extensões PECL (PHP Extension Community Library) e alguns destes módulos são introduzidos como padrão em novas versões da linguagem. É muito parecida, em tipos de dados, sintaxe e mesmo funções, com a linguagem C e com a C++. Pode ser, dependendo da configuração do servidor, embarcada no código HTML. Existem versões do PHP disponíveis para os seguintes sistemas operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell Netware, RISC OS, AIX, IRIX e Solaris.

A Wikipédia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: o MediaWiki.

Construir uma página dinâmica baseada em bases de dados é simples com PHP, (em parte, vale lembrar), este provê suporte a um grande número de bases de dados: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite, MSSQL, Firebird, etc., podendo abstrair o banco com a biblioteca ADOdb, entre outras.

PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP. É possível abrir sockets e interagir com outros protocolos. E as bibliotecas de terceiros expandem ainda mais estas funcionalidades.

Existem iniciativas para utilizar o PHP como linguagem de programação de sistemas fixos. A mais notável é a PHP-GTK. Trata-se de um conjunto do PHP com a biblioteca GTK, portada do C++, fazendo assim softwares inter-operacionais entre Windows e Linux. Na prática, essa extensão tem sido muito pouco utilizada para projetos reais. [carece de fontes?].

Principais características

A linguagem PHP é uma linguagem de programação de domínio específico, ou seja, seu escopo se estende a um campo de atuação que é o desenvolvimento web, embora tenha variantes como o PHP-GTK. Seu propósito principal é de implementar soluções web velozes, simples e eficientes.

Características:

PHP 5

Em junho de 2004 foi lançada a versão 5 do PHP, introduzindo um novo modelo de orientação a objeto, incluindo a reformulação dos construtores e adição de destrutores (ver exemplo contextualizado em anexo), visibilidade de acesso, abstração de objeto e interfaces de objetos.

O tratamento de objetos do PHP foi completamente reescrito, permitindo um desempenho melhor e mais vantagens. Enquanto na versão anterior era preciso muito esforço para atender à orientação a objetos e aos padrões de projectos (alguns não eram possíveis), o PHP 5 veio para sanar essa deficiência. Ainda sofre nesse sentido, contudo, por problemas devido a ser uma linguagem de tipagem fraca.

Indução de tipo

Nesse sentido, foi adicionada uma característica chamada de indução de tipo, de acordo com a qual podemos ter uma certa tipagem quando passamos objetos aos parâmetros de uma função (ou método), algo inconcebível na versão anterior. Ver exemplo contextualizado em anexo.

Visibilidade

A visibilidade de uma propriedade ou método pode ser definida com os seguintes modificadores de acesso: public, protected ou private. Itens declarados como públicos podem ser acessados pelo objeto (instância da classe). Membros protegidos estão acessíveis às classes filhas (herdadas). A visibilidade privada limita a apenas a classe que define o atributo ou método. Ver exemplo contextualizado em anexo.

Polimorfismo

Existem 2 modalidades de polimorfismo chamadas de Polimorfismo Universal e Polimorfismo ad-hoc.

Polimorfismo Universal: Existe dois tipos (Polimorfismo Paramétrico e Polimorfismo de Inclusão).  
Polimorfismo ad-hoc   : Existe dois tipos (Polimorfismo de Sobrecarga e Polimorfismo de Coerção).

Polimorfismo Paramétrico

No polimorfismo paramétrico, um mesmo objeto pode ser utilizado uniformemente como parâmetro em diferentes contextos sem necessidade de alterações. Um método que exibe polimorfismo paramétrico (também chamada de método genérico) permite que o tipo do seu argumento seja determinado por um parâmetro de tipo implícito ou explícito, executando uma mesma operação, independente do tipo do argumento. (Ver exemplo contextualizado em anexo.) O PHP não requer (ou suporta) a definição de tipo explícita na declaração de variáveis: o tipo de uma variável é determinado pelo * contexto em que a variável é utilizada. Isto significa que, se você atribuir um valor string para a variável $var , $var se torna uma string. * Se você então atribuir um valor inteiro para $var , ela se torna um inteiro. Por isso o PHP não adota este tipo de polimorfismo, pois não possui parâmetros genéricos.

Polimorfismo por Inclusão

No polimosfismo por inclusão um objeto pode ser visto como pertencendo a diferentes classes que não precisam ser disjuntas. O PHP adota esse tipo de polimorfismo, pois é uma linguagem orientada a objeto que permite recursos de herança. (Ver exemplo contextualizado em anexo.)

Polimorfismo por Sobrecarga

O polimorfismo por sobrecarga, no qual mais de um método tem o mesmo nome, mas assinaturas diferentes, não é suportado pelo PHP. (Ver exemplo contextualizado em anexo.)

Polimorfismo por Coerção

O PHP também suporta o polimorfismo por coerção, no qual a linguagem dispõe de uma operação semântica para converter um argumento para um tipo esperado por uma função, em uma situação que de outra forma resultaria em um erro de tipo. (Ver exemplo contextualizado em anexo.)

Referências bibliográficas

  • SICA, Carlos (2006). PHP Orientado a Objetos. Fale a Linguagem da Internet 1 ed. [S.l.]: Ciência Moderna. ISBN 978-85-7393-553-0  Parâmetro desconhecido |Autor= ignorado (|autor=) sugerido (ajuda); Parâmetro desconhecido |Volumes= ignorado (|volume=) sugerido (ajuda); Parâmetro desconhecido |Volume= ignorado (|volume=) sugerido (ajuda); Parâmetro desconhecido |Páginas= ignorado (|páginas=) sugerido (ajuda)
  • SICA, Carlos (2007). Programação Segura Utilizando PHP. Fale a Linguagem da Internet 1 ed. [S.l.]: Ciência Moderna. ISBN 978-85-7393-608-7  Parâmetro desconhecido |Autor= ignorado (|autor=) sugerido (ajuda); Parâmetro desconhecido |Volumes= ignorado (|volume=) sugerido (ajuda); Parâmetro desconhecido |Volume= ignorado (|volume=) sugerido (ajuda); Parâmetro desconhecido |Páginas= ignorado (|páginas=) sugerido (ajuda)
  • DALL'OGLIO, Pablo (2007). PHP Programando com Orientação a Objetos. Inclui Design Patterns 1 ed. [S.l.]: Novatec. ISBN 978-85-7522-137-2  Parâmetro desconhecido |Autor= ignorado (|autor=) sugerido (ajuda); Parâmetro desconhecido |Páginas= ignorado (|páginas=) sugerido (ajuda); Ligação externa em |Título= (ajuda)
  • DALL'OGLIO, Pablo (2007). PHP-GTK Criando Aplicações Gráficas com PHP 2 ed. [S.l.]: Novatec. ISBN 978-85-7522-110-5  Parâmetro desconhecido |Autor= ignorado (|autor=) sugerido (ajuda); Parâmetro desconhecido |Páginas= ignorado (|páginas=) sugerido (ajuda); Ligação externa em |Título= (ajuda)
  • MELO, Alexandre Altair de; NASCIMENTO, Mauricio G. F (2007(((((((((((((((((((((((((((((((((((()))))))))))))))))))))))))))))))))))))))))))))))))). PHP Profissional. Aprenda a desenvolver sistemas profissionais orientados a objetos com padrões de projeto 1 ed. [S.l.]: Novatec. ISBN 978-85-7522-141-9  Parâmetro desconhecido |Autor= ignorado (|autor=) sugerido (ajuda); Parâmetro desconhecido |Páginas= ignorado (|páginas=) sugerido (ajuda); Verifique data em: |ano= (ajuda); Ligação externa em |Título= (ajuda)

Extensões

Extensões do PHP:

  • Funções de compressão de bzip2
  • Funções de conversão de Calendar
  • Funções de ClibPDF
  • Funções de crack
  • Família de funções ctype
  • Biblioteca de rotinas de cliente URL - CURL
  • Funções de pagamento Cybercash
  • Funções DBM
  • Camada de funções de abstração de banco de dados DBA
  • Funções de dBase
  • Funções dbx
  • Funções DOM XML
  • Funções .NET
  • Funções EXIF
  • Funções FrontBase
  • Funções de formato de dados de formulários (Forms Data Format) FDF.
  • Funções de filePro
  • Funções de FTP
  • Funções da biblioteca de imagens GD
  • Funções de Gettext
  • Funções de HyperWave
  • Conversão de tabela de caracteres ICONV
  • Funções de Informix
  • Funções de manuseio de IIS
  • Funções de IMAP POP3 e NNTP
  • Funções de Ingres II
  • Funções de InterBase
  • Funções de Java
  • Funções de LDAP
  • Funções de Multi-Byte String
  • Funções de Mcrypt Encryption
  • Funções de Mhash
  • Funções de Mimetype
  • Funções de Ming para Flash
  • Funções de mSQL
  • Funções de MSSQL
  • Funções de MySQL
  • Funções de MySQLi
  • Funções de Oracle 8
  • Funções de OpenSSL
  • Funções de Oracle
  • Funções de sobrecarga de objectos
  • Funções de PDF
  • Funções de PostgreSQL
  • Funções de impressora
  • Funções de memória Compartilhada
  • Funções de get and walk de SNMP
  • Funções de SOAP
  • Funções de socket
  • Funções de Sybase
  • Funções de Tidy
  • Funções de Tokenizer
  • Funções de W32api
  • Funções de XML-RPC
  • Funções de XSLT
  • Funções do YAZ
  • Funções para Arquivos Zip
  • Funções de compressão de ZLib

Grandes apoiadores

PHP já há algum tempo tem chamado atenção de gigantes da Tecnologia por sua robustez e facilidades. Segue alguns:

Ver também

Wikilivros
Wikilivros
O Wikilivros tem um livro chamado PHP

Ligações externas