Professional Documents
Culture Documents
https://pt.wikipedia.org/wiki/PHP
PHP
Origem: Wikipdia, a enciclopdia livre.
PHP
Paradigma
procedural, reexo,
orientao a objetos,
funcional
Surgido em
1995
ltima
verso
7.0.3[1]
Criado por
Rasmus Lerdorf
Estilo de
tipagem:
dinmica
(4 de fevereiro de
2016)
Compiladores Linguagem
interpretada
Inuenciada
por
ndice
1 Histria
1.1 Licena
1.2 PHP 6 e Unicode
1.3 Histrico de verses
1 de 14
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
2 Principais caractersticas
3 Vetores e matrizes
4 PHP 5
4.1 Induo de tipo
4.2 Visibilidade
5 Polimorsmo
5.1 Polimorsmo Paramtrico
5.2 Polimorsmo por Incluso
5.3 Polimorsmo por Coero
6 Extenses
7 Ver tambm
8 Referncias
9 Bibliograa
10 Ligaes externas
Histria
A linguagem foi criada em 1994 e o cdigo fonte do PHP s foi liberado em
1995, como um pacote de programas CGI criados por Rasmus Lerdorf, com o
nome Personal Home Page Tools, para substituir um conjunto de scripts Perl
que ele usava no desenvolvimento de sua pgina pessoal. Em 1997 foi lanado
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 orientao a objetos, que dava poder de alcanar alguns pacotes,
tinha herana e dava aos desenvolvedores somente a possibilidade de
implementar propriedades e mtodos.[3] [4] Pouco depois, Zeev e Andi
Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando
mais poder mquina da linguagem e maior nmero de recursos de orientao
a objetos. O problema srio que apresentou o PHP 4 foi a criao de cpias de
objetos, pois a linguagem ainda no trabalhava com apontadores ou handlers,
como so as linguagens Java, Ruby e outras. O problema fora resolvido na
verso atual do PHP, a verso 5, que j trabalha com handlers. Caso se copie
um objeto, na verdade copiaremos um apontador, pois, caso haja alguma
mudana na verso original do objeto, todas as outras tambm sofrem a
alterao, o que no acontecia na PHP 4.[5]
Trata-se de uma linguagem extremamente modularizada, o que a torna ideal
para instalao e uso em servidores web. Diversos mdulos so criados no
repositrio de extenses PECL (PHP Extension Community Library) e alguns
destes mdulos so introduzidos como padro em novas verses da linguagem.
muito parecida, em tipos de dados, sintaxe e mesmo funes, com a
linguagem C e com a C++. Pode ser, dependendo da congurao do servidor,
embarcada no cdigo HTML. Existem verses do PHP disponveis para os
seguintes sistemas operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2,
AS/400, Novell Netware, RISC OS, AIX, IRIX e Solaris.
2 de 14
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Construir uma pgina dinmica baseada em bases de dados simples com PHP,
(em parte, vale lembrar), este prov suporte a um grande nmero de bases de
dados: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite, MSSQL,
Firebird, etc., podendo abstrair o banco com a biblioteca ADOdb, entre outras.
A Wikipdia funciona sobre um software inteiramente escrito em PHP, usando
bases de dados MySQL: o MediaWiki.[5]
PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP,
XML-RPC, SOAP. possvel 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 programao de
sistemas xos. A mais notvel a PHP-GTK. Trata-se de um conjunto do PHP
com a biblioteca GTK, portada do C++, fazendo assim softwares interoperacionais entre Windows e Linux. Na prtica, essa extenso tem sido muito
pouco utilizada para projetos reais.[5]
Licena
PHP um software gratuito e de cdigo aberto publicado sob a PHP License,
que arma:[6]
Produtos derivados deste software no devem ser chamado de
PHP, nem pode conter "PHP" em seu nome, sem prvia
permisso por escrito da group@php.net. Voc pode indicar que
o software funciona em conjunto com o PHP, dizendo "Foo para
PHP", em vez de cham-lo "PHP Foo" ou "phpfoo".
Esta restrio no uso do nome PHP o torna incompatvel com a GNU General
Public License (GPL).[7]
PHP 6 e Unicode
PHP recebeu diversas crticas por no ter suporte nativo a Unicode.[8] [9] Em
2005, um projeto liderado por Andrei Zmievski foi iniciado para trazer esse
dito suporte ao PHP atravs da incorporao da biblioteca International
Components for Unicode (ICU) para poder passar-se a usar a codicao
UTF-16.[10] Uma vez que isso causaria grandes mudanas tanto no cdigo fonte
como para o usurio, foi planejado lan-la na verso 6.0 em conjunto com
outros importantes recursos, ento em desenvolvimento, em vez da 5.5. [11]
Entretanto, devido a falta de desenvolvedores que entendessem as mudanas
necessrias e problemas de desempenho decorrentes da converso para
UTF-16, que raramente usado em um contexto web, levou a atrasos no
projeto. Como resultado, o PHP 5.3 foi lanado em 2009, sem total suporte ao
Unicode, mas contendo algumas das novidades que seriam lanadas no PHP
3 de 14
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Histrico de verses
Legenda
Vermelho Verso no mais suportada
4 de 14
Verde
Verso suportada
Azul
Prximas verses
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Verso
Verso
Data de
principal intermediria lanamento
1995-06-08
Ocialmente chamado de
"Personal Home Page Tools (PHP
Tools)" (Ferramentas para pgina
pessoal). Este foi o primeiro uso
para o nome "PHP".
1997-11-01
1998-06-06
2000-10-20
4.0.0
2000-05-22
4.1.0
2001-12-10
Introduzidas as 'superglobais'
($_GET, $_POST, $_SESSION, etc.)[13]
2002-04-22
4.3.0
2002-12-27
4.4.0
2005-07-11
2008-08-07
1.0.0
2.0.0
3.0.0
3
3.0.18
4.2.0
4
4.4.9
5 de 14
Notas
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
2004-07-13
2005-11-24
5.2.0
2006-11-02
5.2.16
2010-12-16
5.2.17
2011-01-06
Correo de vulnerabilidade
crtica relacionada a ponto
utuante.
2009-06-30
5.3.1
2009-11-19
5.3.2
2010-03-04
5.3.3
2010-07-22
2010-12-10
5.0.0
5.1.0
5.3.0
5.3.4
6 de 14
12-05-2016 09:18
5.3.5
2011-01-06
5.3.6
2011-03-10
5.3.7
2011-08-18
5.3.8
2011-08-23
5.3.9
2012-01-10
5.3.10
2012-02-02
5.3.13
2012-05-08
2012-06-06
bugs corrigidos
(http://www.php.net/ChangeLog5.php#5.3.14).
2012-07-19
bugs corrigidos
(http://www.php.net/ChangeLog5.php#5.3.15).
5.3.16
2012-08-16
bugs corrigidos
(http://www.php.net/ChangeLog5.php#5.3.16).
5.3.17
2012-09-13
bugs corrigidos
(http://www.php.net/ChangeLog5.php#5.3.17).
2013-01-17
bugs corrigidos
(http://www.php.net/ChangeLog5.php#5.3.21).
2012-03-01
5.3.14
5.3.15
5.3.21
5.4.0
7 de 14
https://pt.wikipedia.org/wiki/PHP
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
2012-04-26
correes de bugs
(http://www.php.net/ChangeLog5.php#5.4.1).
5.4.2
2012-05-03
2012-05-08
Correo de vulnerabilidade
relacionada s instalaes
baseadas em CGI e correo em
vulnerabilidade de buer overow
na funo apache_request_headers().
2012-06-06
correes de bugs
(http://www.php.net/ChangeLog5.php#5.4.4).
5.4.5
2012-07-19
correes de bugs
(http://www.php.net/ChangeLog5.php#5.4.5).
5.4.6
2012-08-16
correes de bugs
(http://www.php.net/ChangeLog5.php#5.4.6).
2012-09-13
correes de bugs
(http://www.php.net/ChangeLog5.php#5.4.7).
5.4.11
2013-01-17
correes de bugs
(http://www.php.net/ChangeLog5.php#5.4.11).
5.5.0
2013-06-20
correes de bugs
(http://www.php.net/ChangeLog5.php#5.5.0).
2015-05-14
correes de bugs
(http://www.php.net/ChangeLog5.php#5.6.9).
5.4.3
5.4.4
5.4.7
5.6.9
8 de 14
7.0.0
Verso de
teste
liberada em
Junho de
2015.
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Principais caractersticas
A linguagem PHP uma linguagem de programao de domnio especco, ou
seja, seu escopo se estende a um campo de atuao que o desenvolvimento
web, embora tenha variantes como o PHP-GTK. Seu propsito principal de
implementar solues web velozes, simples e ecientes[21] . Caractersticas:
Velocidade[22] [23] [24] e robustez[25] [26] .
Orientao a objetos.
Portabilidade - independncia de plataforma - escreva uma vez, rode em
qualquer lugar.
Tipagem dinmica.
Sintaxe similar a C/C++ e o Perl.
Open-source.
Server-side (O cliente manda o pedido e o servidor responde em pgina
HTML)
Vetores e matrizes
Os vetores e matrizes em PHP, diferente do que ocorre em C/C++ e Pascal,
uma estrutura dinmica, o que pode facilitar muito o trabalho do programador.
Um exemplo:
<?php
$vet01 =
$vet01[]
$vet01[]
$vet01[]
array();
= "Sistemas operacionais";
= "Compiladores";
= "Bancos de dados";
PHP 5
Em junho de 2004 foi lanada a verso 5 do PHP, introduzindo um novo modelo
de orientao a objeto, incluindo a reformulao dos construtores e adio de
9 de 14
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Induo de tipo
Nesse sentido, foi adicionada uma caracterstica chamada de induo de tipo,
de acordo com a qual podemos ter uma certa tipagem quando passamos
objetos aos parmetros de uma funo (ou mtodo), algo inconcebvel na
verso anterior. Ver exemplo contextualizado em anexo.[carecede fontes?]
Visibilidade
A visibilidade de uma propriedade ou mtodo pode ser denida com os
seguintes modicadores de acesso: public, protected ou private. Itens declarados
como pblicos podem ser acessados pelo objeto (instncia da classe). Membros
protegidos esto acessveis s classes lhas (herdadas). A visibilidade privada
limita a apenas a classe que dene o atributo ou mtodo. Ver exemplo
contextualizado em anexo.[carecede fontes?]
Polimorsmo
Polimorsmo Paramtrico
No polimorsmo paramtrico, um mesmo objeto pode ser utilizado
uniformemente como parmetro em diferentes contextos sem necessidade de
alteraes. Um mtodo que exibe polimorsmo paramtrico (tambm chamada
de mtodo genrico) permite que o tipo do seu argumento seja determinado
por um parmetro de tipo implcito ou explcito, executando uma mesma
operao, independente do tipo do argumento. O PHP no requer (ou suporta)
a denio de tipo explcita na declarao de variveis: o tipo de uma varivel
determinado pelo:[carecede fontes?]
contexto em que a varivel utilizada. Isto signica que, se voc atribuir
um valor string para a varivel $var, $var se torna uma string
Se voc ento atribuir um valor inteiro para $var, ela se torna um inteiro.
Por isso o PHP no adota este tipo de polimorsmo, pois no possui
parmetros genricos
10 de 14
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Extenses
Extenses do PHP:
Funes de compresso de bzip2
Funes de converso de
Calendar
Funes de ClibPDF
Funes de crack
Famlia de funes ctype
Biblioteca de rotinas de cliente
URL - CURL
Funes de pagamento
Cybercash
Funes DBM
Camada de funes de abstrao
de banco de dados DBA
Funes de dBase
Funes dbx
Funes DOM XML
Funes .NET
Funes EXIF
Funes FrontBase
Funes de formato de dados de
formulrios (Forms Data Format)
FDF.
Funes de lePro
Funes de FTP
Funes da biblioteca de imagens
GD
Funes de Gettext
Funes de HyperWave
Converso de tabela de
caracteres ICONV
11 de 14
Funes de Informix
Funes de manuseio de IIS
Funes de IMAP POP3 e NNTP
Funes de Ingres II
Funes de InterBase
Funes de Java
Funes de LDAP
Funes de Multi-Byte String
Funes de Mcrypt Encryption
Funes de Mhash
Funes de Mimetype
Funes de Ming para Flash
Funes de mSQL
Funes de MSSQL
Funes de MySQL
Funes de MySQLi
Funes de Oracle 8
Funes de OpenSSL
Funes de Oracle
Funes de sobrecarga de
objectos
Funes de PDF
Funes de PostgreSQL
Funes de impressora
Funes de memria
compartilhada
Funes de get and walk de
SNMP
Funes de SOAP
Funes de socket
Funes de SQLite
12-05-2016 09:18
Funes
Funes
Funes
Funes
Funes
de
de
de
de
de
https://pt.wikipedia.org/wiki/PHP
Sybase
Tidy
Tokenizer
W32api
XML-RPC
Funes
Funes
Funes
Funes
de XSLT
do YAZ
para Arquivos Zip
de compresso de ZLib
Ver tambm
Anexo:Lista de exemplos de cdigo PHP
MySQL
Servidor Apache
Perl
PHP-GTK
Revista PHPReview
WAMP5
EasyPHP
ScriptCase
XAMPP
XPTO
Referncias
1. PHP 7.0.3 Released (http://php.net
/archive/2016.php#id2016-02-04-1)
(em ingls). PHP.net. 4 de fevereiro
de 2016. Consultado em 17 de
fevereiro de 2016.
2. Manual ocial do PHP - Prefcio
(http://www.php.net/manual/pt_BR
/preface.php). php.net. Consultado
em 7 de fevereiro de 2011.
3. PHP on Hormones de Rasmus
Lerdorf
(http://itc.conversationsnetwork.org
/shows/detail3298.html)
4. slides for 'PHP on Hormones' talk por
Lerdorf (http://talks.php.net
/show/mysql07key/3)
5. PHP 6 (http://news.php.net
/php.internals/47120). The PHP
project. Consultado em 2010-03-27.
6. The PHP License, version 3.01
(http://www.php.net/license/3_01.txt).
Consultado em 2010-05-20.
7. GPL-Incompatible, Free Software
Licenses (http://www.gnu.org
/licenses/license-
12 de 14
8.
9.
10.
11.
12.
list.html#GPLIncompatibleLicenses).
Various Licenses and Comments
about Them. Free Software
Foundation. Consultado em
2011-01-03.
Types: Strings (http://php.net
/manual
/en/language.types.string.php). PHP
Manual. PHP.net. Consultado em
26/03/2014.
Details of the String Type
(http://www.php.net/manual
/en/language.types.string.php#langu
age.types.string.details). PHP
Manual. PHP.net. Consultado em
2013-09-22.
Andrei Zmievski (2005-08-10). PHP
Unicode support design document
(mailing list post) (http://marc.info
/?l=php-internals&
m=112365908921757&w=1).
Consultado em 26/03/2014.
PHP 5.5 or 6.0 (http://news.php.net
/php.internals/17668). Consultado em
26/03/2014.
Rasmus Lerdorf (26/03/2014). PHP
12-05-2016 09:18
13.
14.
15.
16.
17.
18.
19.
20.
21.
https://pt.wikipedia.org/wiki/PHP
Bibliograa
DALL'OGLIO, Pablo (2007). PHP Programando com Orientao a Objetos
(http://www.adianti.com.br/phpoo). Inclui Design Patterns 1 ed. Novatec
[S.l.] ISBN 978-85-7522-137-2. Parmetro desconhecido |Pginas= ignorado
(|pginas=) (Ajuda); Ligao externa em |title= (Ajuda)
DALL'OGLIO, Pablo (2007). PHP-GTK Criando Aplicaes Grcas com
PHP (http://www.php-gtk.com.br/book) 2 ed. Novatec [S.l.] ISBN
978-85-7522-110-5. Parmetro desconhecido |Pginas= ignorado (|pginas=)
(Ajuda); Ligao externa em |title= (Ajuda)
13 de 14
12-05-2016 09:18
https://pt.wikipedia.org/wiki/PHP
Ligaes externas
Website ocial (http://www.php.net/) (em ingls)
PHP (http://www.dmoz.org/Computers/Programming/Languages/PHP/) no
Open Directory Project
PHP-by-Example (http://micmap.org/php-by-example/pt) Tente funes
PHP online.
Obtida de "https://pt.wikipedia.org/w/index.php?title=PHP&oldid=45516117"
Categorias: PHP Acrnimos Compiladores e interpretadores livres
Linguagens de programao baseadas em classes
Linguagens de programao criadas em 1995
Esta pgina foi modicada pela ltima vez (s) 13h21min de 4 de maio de
2016.
Este texto disponibilizado nos termos da licena Creative Commons Atribuio - Compartilha Igual 3.0 No Adaptada (CC BY-SA 3.0); pode
estar sujeito a condies adicionais. Para mais detalhes, consulte as
Condies de Uso.
14 de 14
12-05-2016 09:18