𝖂𝖎ƙ𝖎𝖊

PHP: mudanças entre as edições

imported>Rei-bot
m (Bot: Adicionando: zh-min-nan:PHP Modificando: simple:PHP)
Linha 100: Linha 100:
       class Person {
       class Person {
             function __destruct() {
             function __destruct() {
                 print "Destruímos o obejto...";
                 print "Destruímos o objeto...";
             }
             }
       }
       }

Edição das 18h18min de 4 de julho de 2007

Predefinição:Manutenção/Categorizando por assunto

Predefinição:Info/Linguagem de computador

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 Web. Apesar de ser uma linguagem de fácil aprendizagem e de utilização para pequenos scripts dinâmicos simples, o PHP é uma linguagem poderosa orientada a objetos.

Histórico

A linguagem surgiu por volta de 1994, como um subconjunto de scripts Perl criados por Rasmus Lerdof, com o nome Personal Home Page Tools. Mais tarde, em 1997, foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, que era na verdade um interpretador de comandos SQL.

Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de Orientação à 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 handlres, como é a linguagem JAVA.

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 apontamento, 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, embutida 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, 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 ,(em parte, vale lembrar), com PHP, 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.

Principais Características da Linguagem PHP

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:

  • Velocidade e robustez
  • Orientação a objeto
  • Portabilidade - Independência de plataforma - "write once run anywhere" (escreva uma vez, rode em qualquer lugar);
  • Tipagem fraca
  • Sintaxe similar a Linguagem C/C++ e o PERL

Exemplo da sintaxe

<?php
require_once('code.php'); // incluir e executar uma vez

require('code.php'); // incluir e executar

include('code.php'); // executar e incluir

echo 'abc'; /* Escrever abc */

print 'abc';         /* Realiza a mesma coisa que 'echo', porém retorna se */
$res = print 'abc';  /* foi executado com sucesso saída ou não (0 ou 1)    */

$x = 2; # Variáveis

if ($x == "2" || $x > "2") // se a variavel $x igual a 2 OU maior que 2
{
    echo 'Olá mundo!'; // escreve "Olá mundo!"
} else {  // Se não, escreve 'Adeus mundo!'
    print('Adeus mundo!'); // print pode ser usado com ou sem parênteses
}

?>

PHP 5

Em junho de 2004 foi lançada a versão 5 do PHP, introduzindo um novo modelo de Orientação a Objetos.

Nesse novo modelo a linguagem foi enriquecida com uma variedade de características de uma linguagem orientada a objectos como:

  • Reformulação dos Construtores e adição de Destructores
 O construtor
  <?php

       class Person {
             function __construct() {
                 print "O construtor é chamado automaticamante quando o objeto é instanciado!";
             }
       }
  ?>
  
 O destrutor
  <?php

       class Person {
             function __destruct() {
                 print "Destruímos o objeto...";
             }
       }
  ?>
  
  • Visibilidade de acesso
  • Abstração de Objeto
  • Interfaces de Objetos

O tratamento de objectos do PHP foi completamente reescrito, permitindo uma performance 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.

Por exemplo:

<?php
   class Pessoa
  {
     // implementação omitida  
  }

  // PHP 4
  function registraPessoa( $objPessoa )
  {
    // implementação omitida  
  }

  // PHP 5
  function registraPessoa( Pessoa $objPessoa )
  {
    // implementação omitida  
  }


  // PHP 4 não dispara erros
  registraPessoa( "10" );


  // PHP 5 dispara erros!!
  registraPessoa( "10" );

  // PHP 5 forma correta
  registraPessoa( new Pessoa() );
  
?>


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 public podem ser acessados pelo objeto (instância da classe). Protected estão acessíveis às classes filhas (herdadas). Private limita a visibilidade para apenas a classe que define o atributo ou método.

Por exemplo:

class ClassePai
{
   
   private $atributoPrivado;
   protected $atributoProtegido;
   
   public function imprimePai()
   {
       $this->atributoPrivado = 'Privado';
       echo $this->atributoPrivado;
   }
}

class ClasseFilha extends ClassePai
{
   public $atributoPublico;

   public function imprimeFilho()
   {
       $this->atributoProtegido = 'Protegido';
       echo $this->atributoProtegido;

   }
}

$obj = new ClasseFilha();
echo $obj->imprimePai(); // Exibe na tela 'Privado'
echo $obj->imprimeFilho(); // Exibe na tela 'Protegido'

// É permitido o acesso pelo objeto aos atributos públicos:
$obj->atributoPublico = 'Sobrenome: Muzzy';
echo $obj->atributoPublico; // Exibe na tela 'Sobrenome: Muzzy'

Outros Exemplos

Ler dois valores registrados em variáveis e indicar o maior

<?php
$valor1 = 40;
$valor2 = 20;

if ($valor1 > $valor2) {
  echo 'A variável $valor1 é maior que a variável $valor2';
} else {
  echo 'A variável $valor2 é maior que a variável $valor1';
}
?>

Mostrar na página os 10 primeiros números

<?php

//Utilizando WHILE
$valor = 1;

while ($valor <= 10) { echo $valor; $valor++; }
?> 

<?php

//Utilizando FOR
for ($valor = 1; $valor <= 10; $valor++) { echo $valor; }
?>

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 Funções 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 mantenedores

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

Segue alguns:

Ver também

Predefinição:Wikibooks

Ligações externas

PHP.net

Segurança

Referências Bibliográficas

- SICA, Carlos. "PHP Orientado a Objetos - Fale a Linguagem da Internet", Editora Ciência Moderna], Rio de Janeiro, 2006.

af:PHP als:PHP an:PHP ar:بي إتش بي az:PHP bg:PHP bn:পিএইচপি bs:PHP ca:PHP cs:PHP da:PHP de:PHP el:PHP en:PHP eo:PHP es:PHP et:PHP eu:PHP fa:زبان برنامه‌نویسی پی‌اچ‌پی fi:PHP fr:PHP: Hypertext Preprocessor gl:PHP he:PHP hr:PHP hu:PHP programozási nyelv id:PHP is:PHP it:PHP ja:PHP: Hypertext Preprocessor kk:PHP ko:PHP ku:PHP la:PHP lb:PHP lt:PHP lv:PHP mk:PHP ms:PHP nl:PHP no:PHP pl:PHP ro:PHP ru:PHP sh:PHP simple:PHP sk:PHP (programovací jazyk) sl:PHP sq:PHP sr:Програмски језик ПХП sv:PHP tg:PHP th:ภาษาพีเอชพี tr:PHP uk:PHP vi:PHP zh:PHP zh-min-nan:PHP zh-yue:PHP

talvez você goste