Soluções        Serviços          Atendimento       Governo        Consultoria T.I      Treinamento

Software

PHP
PHP-logo.svg
Paradigma procedural, reflexão, orientação a objetos, funcional
Surgido em 1995
Última versão 5.3.8 (23 de agosto, 2011)
Criado por Rasmus Lerdorf
Estilo de tipagem: dinâmica
Compiladores Linguagem interpretada
Influenciada por C, C++, Perl, Java, Tcl
Página oficial www.php.net

PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor", originalmente Personal Home Page) é uma linguagem interpretada livre e utilizada para gerar conteúdo dinâmico na World Wide Web.[1]

Índice

  • 1 Histórico
  • 2 Principais características
  • 3 Vetores e matrizes
  • 4 PHP 5
    • 4.1 Indução de tipo
    • 4.2 Visibilidade
  • 5 Polimorfismo
    • 5.1 Polimorfismo Paramétrico
    • 5.2 Polimorfismo por Inclusão
    • 5.3 Polimorfismo por Coerção
  • 6 Extensões
  • 7 Referências
  • 8 Ver também
  • 9 Bibliografia
  • 10 Ligações externas

Histórico

A linguagem surgiu por volta de 1994, 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 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.[2][3] 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.[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.

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. A Wikipédia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: o MediaWiki.[4]

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.[4]

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:[carece de fontes?]

  • Velocidade e robustez
  • Estruturado e orientação a objetos
  • Portabilidade - independência de plataforma - escreva uma vez, rode em qualquer lugar
  • Tipagem dinâmica
  • Sintaxe similar a C/C++ e o Perl
  • Open-source

Vetores e matrizes

Os vetores e matrizes em PHP, diferente do que ocorre em C/C++ e Pascal, é uma estrutura dinâmica, o que pode facilitar muito o trabalho do programador.

Um exemplo:

<?php
 
  $vet01 = array();
  $vet01[] = "Sistemas operacionais";
  $vet01[] = "Compiladores";
  $vet01[] = "Bancos de dados";
 
  $vet02 = array(1, 2, 3, 4, 5);
 
  $vet03 = array( 0 => 0, 2 => 3, 10 => "item 10");
 
  for ($i = 0; $i < count($vet01); $i++) {
    echo $vet01[$i] . "<br />";
  }
 
?>

O exemplo acima demonstra três maneiras diferentes de declarar vetores.

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.[5]

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.[5]

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.[carece de fontes?]

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.[carece de fontes?]

Polimorfismo


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. 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:[carece de fontes?]

  • 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 polimorfismo 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.[carece de fontes?]

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.[carece de fontes?]

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

Referências

  1. Manual oficial do PHP - Prefácio (em português). php.net. Página visitada em 7 de fevereiro de 2011.
  2. ↑ PHP on Hormones de Rasmus Lerdorf
  3. ↑ slides for 'PHP on Hormones' talk por Lerdorf
  4. a b c PHP 6. The PHP project. Página visitada em 2010-03-27.
  5. a b PHP 5.3 migration guide. The PHP project. Página visitada em 2009-07-03.

Ver também

  • Anexo:Lista de exemplos de código PHP
  • MySQL
  • Servidor Apache
  • Perl
  • PHP-GTK
  • WAMP5
  • EasyPHP
  • ScriptCase
  • XAMPP
  • XPTO

Bibliografia

  • SICA, Carlos. PHP COM TUDO. 1 ed. Rio de Janeiro - RJ: Ciência Moderna, 2011. 552 p. 1 vol. vol. 1. ISBN 978-85-399-0002-2
  • SICA, Carlos. PHP Orientado a Objetos: Fale a Linguagem da Internet. 1 ed. Rio de Janeiro - RJ: Ciência Moderna, 2006. 216 p. 1 vol. vol. 1. ISBN 978-85-7393-553-0
  • SICA, Carlos. Programação Segura Utilizando PHP: Fale a Linguagem da Internet. 1 ed. Rio de Janeiro - RJ: Ciência Moderna, 2007. 100 p. 1 vol. vol. 1. ISBN 978-85-7393-608-7
  • DALL'OGLIO, Pablo. PHP Programando com Orientação a Objetos: Inclui Design Patterns. 1 ed. São Paulo: Novatec, 2007. 576 p. ISBN 978-85-7522-137-2
  • DALL'OGLIO, Pablo. PHP-GTK Criando Aplicações Gráficas com PHP. 2 ed. São Paulo: Novatec, 2007. 445 p. ISBN 978-85-7522-110-5
  • MELO, Alexandre Altair de; NASCIMENTO, Mauricio G. F. PHP Profissional: Aprenda a desenvolver sistemas profissionais orientados a objetos com padrões de projeto. 1 ed. São Paulo: Novatec, 2007. 464 p. ISBN 978-85-7522-141-9

Ligações externas

  • Página oficial (em inglês)
  • PHP no Open Directory Project

Obtida de "http://pt.wikipedia.org/w/index.php?title=PHP&oldid=27721438"

MAIS INFORMAÇÕES DO SETOR DE SOFTWARE

Orientação a objetos

A orientação a objetos é um paradigma de análise, projeto e programação de sistemas de softwar [ ... ]


CakePHP

CakePHP é um framework escrito em PHP que tem como principais objetivos oferecer uma estrutura qu [ ... ]


linguagem C

article thumbnail


C Paradigma Programação estruturada
Programação imperativa
Programação procedu [ ... ]


CobiT

Origem: Wikipédia, a enciclopédia livre. COBIT®, do inglês, Control Objectives for Information  [ ... ]


Hierarquia DIKW

DIKW é uma hierarquia informacional utilizada principalmente nos campos da Ciência da Informação [ ... ]


CodeIgniter

CodeIgniter Desenvolvedor EllisLab, Inc. Lançado em 28 de Fevereiro de 2006  [ ... ]


Software proprietário

Software proprietário ou não livre é aquele cuja cópia, redistribuição ou modificação sã [ ... ]


Sistema de informação de gestão

Sistema de informação de gestão ou sistema de informações gerenciais (SIG; do inglês, manageme [ ... ]


Model-view-controller (MVC)

article thumbnail


Um diagrama simples exemplificando a relação entre Model, View e Controller. As linhas sól [ ... ]


Linux

article thumbnail


Linux
Tux, a mascote do Linux Modelo: Software Livre Família do SO: bas [ ... ]


COA - Control Oriented Architecture

Control Oriented Architecture - COA é uma arquitetura de camadas de controle que permite configur [ ... ]


Programação extrema

Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ág [ ... ]


Microsoft Windows

article thumbnail



Último lançamento do Windows, Windows 7, mostrando o seu ambiente de trabalho e me [ ... ]


NF-e ou Nota fiscal eletrônica

article thumbnail

Pela definição oficial brasileira, uma nota fiscal eletrônica (NF-e) é "um documento de existên [ ... ]


Cibernética

Cibernética é uma tentativa de compreender a comunicação e o controle de máquinas, seres vivo [ ... ]


Microsoft Office

article thumbnail

Microsoft Office Desenvolvedor Microsoft Plataforma x86 e x64 Lançad [ ... ]


Gerenciamento de nível de serviços

Gerenciamento de nível de serviços é uma disciplina de gestão responsável pelo processo gerenci [ ... ]


Gestão de riscos em TI

A Gestão de riscos (termo também conhecido como Risk Management) é um processo/disciplina util [ ... ]


Outsourcing

 Outsourcing (em inglês, "Out" significa "fora" e "source" ou "sourcing" significa fonte)  [ ... ]


Sistemas de CRM

Os sistemas de CRM.. são aplicativos de informação desenvolvidos com o objetivo de auxiliar na ge [ ... ]


Teste de penetração

article thumbnail

O teste de penetração é um método que avalia a segurança de um sistema de computador ou de um [ ... ]


Ferramenta CASE

Ferramentas CASE (do inglês Computer-Aided Software Engineering) é uma classificação que abran [ ... ]


web desktop

article thumbnail

Tela do eyeOS 0.9 Um webtop, web desktop, desktop online ou OS online (OS é a sigla para [ ... ]


AJAX


AJAX (acrônimo em língua inglesa de Asynchronous Javascript and XML, em português "Javascript  [ ... ]


Modelo em cascata

article thumbnail

O modelo em cascata é um modelo de desenvolvimento de software seqüencial no qual o desenvolvime [ ... ]


Sistema Integrado de Aprendizagem de Produtos e Serviços

Sistema Integrado de Aprendizagem de Produtos e Serviços - Sinapse (acrônimo) é o nome de uma met [ ... ]


Processo de desenvolvimento de software

Um processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, c [ ... ]


Modelo Balbúrdia

No início da computação, poucos programadores seguiam algum tipo de metodologia baseando-se, em [ ... ]


Teoria da informação

article thumbnail

A Teoria da informação ou Teoria matemática da comunicação é um ramo da teoria da probabilidad [ ... ]


Plone

article thumbnail

Plone

Screenshot da instalação padrão Desenvolvedor Alan Runyan, Alexander L [ ... ]


UML

article thumbnail

A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira gera [ ... ]


Engenharia de software

Engenharia de software é uma área do conhecimento da computação voltada para a especificação,  [ ... ]


Arquitetura de software

A arquitetura de software de um sistema consiste na definição dos componentes de software, suas  [ ... ]


Kohana Framework

Kohana é um framework para aplicações web de código aberto, escrito em PHP 5 que adota o padr [ ... ]


Zend Framework

article thumbnail

Zend Framework Logotipo do Zend Framework Desenvolvedor Zend Tech [ ... ]


Django (framework web)

Django Desenvolvedor Lawrence Journal-World Lançado em 21 de Julho de 2005  [ ... ]


Sistema de informação contábil

O sistema de informação contábil é um dos componentes do sistema de informação gerencial (SIG, [ ... ]


Software aplicativo

article thumbnail


O OpenOffice.org é um exemplo de um aplicativo. O GNU Image Manipulation Program (G [ ... ]


Modelo de entidades e relacionamentos

O modelo de entidades e relacionamentos é um modelo abstrato cuja finalidade é descrever, de man [ ... ]


Modelagem dimensional

Modelagem dimensional é uma técnica de projeto lógico normalmente usada para data warehouses qu [ ... ]


Otimização em engenharia de software

A Otimização em engenharia de software é uma recente área de pesquisa que trata da aplicação [ ... ]


EAD - Educação a distância

Tele-educação, Educação a Distância ou Ensino a Distância (EaD) [nota 1] é a modalidade de en [ ... ]


Videoconferência

article thumbnail

Videoconferência entre militares em 2006. Videoconferência é uma tecnologia que permite  [ ... ]


Blog corporativo

Blogs Corporativos podem ser traduzidos em: uso de blogs dentro do cotidiano das empresas. O Blog  [ ... ]


Sistema de informação de gestão

Sistema de informação de gestão ou sistema de informações gerenciais (SIG; do inglês, manageme [ ... ]


SOA - Arquitetura orientada a Serviços

article thumbnail

Service-Oriented Architecture (SOA), pode ser traduzido como arquitetura orientada a serviços, e é [ ... ]


Matriz de interações

article thumbnail

A Matriz de Interações (ou Matriz CRUD) é utilizada, no processo de desenvolvimento de sistemas [ ... ]


Web 2.0

article thumbnail

Web 2.0 é um termo criado em 2004 pela empresa americana O'Reilly Media[1] para designar uma segu [ ... ]


Larry Page

article thumbnail

Lawrence Edward Page Larry Page Nascimento 26 de Março de 1973 (38 anos) [ ... ]


Computação em nuvem

article thumbnail

A nuvem (cloud) é o símbolo da Internet. O conceito de computação em nuvem (em inglê [ ... ]


Artigos Relacionados

Pluriverso - Inteligência em Tecnologia

Pluriverso - Inteligência em Tecnologia


Ed.Centro Sul, 2°Andar, SCIA, Qd. 14, Conj. 07, Lt 1, S. Ind.
CEP: 71.250-135, Brasília-DF.  
Como Chegar
| Atendimento  


+55 (61) 4141.5555

Serviços

Desenvolvimento de Software
Oursourcing de T.I
Consultoria em Tecnologia
Licitação com o Governo

Produtos

ERP, CRM, Colaboração
Cloud Computing

Soluções
Soluções em Outsourcing de Tecnologia
Integração de Software
Avaliação de nível tecnológico
Cálculo de custos de T.I
Softwares customizados


Porque escolher a Pluriverso

Blog Corporativo
Blog do Software

Conheça a Pluriverso
quem somos
verticais de atuação
portifólio
casos de sucesso

Atendimento
contatos
sala de imprensa
como chegar
Trabalhe conosco

desenvolvimento de software