+3

Novidades do PHP 5.0

criado por Alessander Thomaz em 10/07/2003 1:30pm
Foi lançada recentemente (29 de junho de 2003) primeira versão beta do PHP 5.
Uma versão que vem sendo desenvolvida a alguns meses e que tem a versão final prevista para novembro de 2003.

Como toda versão beta existem alguns problemas e por isso não é recomendado instalar o PHP5 em produção ainda, mas é uma versão muito útil para testar as novas funcionalidades do PHP.

Baixe o arquivo tar.gz para linux
http://www.php.net/get/php-5.0.0b1.tar.gz/from/a/mirror

Baixe o arquivo zip para windows:
http://www.php.net/get/php-5.0.0b1-Win32.zip/from/a/mirror


As novidades da nova versão são:
- Melhorias significativas na programação orientada a objetos, só para citar:
. Métodos privados (private) e protegidos(protect),
. Classes e métodos abstratos,
. Interfaces
. Exceptions (Controle de erros)

- Melhorias de desempenho em algumas funções
- Novas funções miscelâneas como get_headers() e array_combine()
- Correção de alguns bugs.
- Melhorias no uso de XML utilizando a excelente biblioteca libxml2 (http://www.xmlsoft.org/)
- Suporte ao SQLite por padrão
- Retirada da biblioteca cliente do MySQL na instalação do PHP

Abrindo um parênteses, para comentar sobre o MySQL.

Sem dúvida essa é a noticia que mais impressiona. Veja o que andou rolando na lista php-dev nas palavras de Sterling, um dos desenvolvedores do php, que fez a retirada do mysql no PHP5 :
http://marc.theaimsgroup.com/?l=php-dev&m=105621066832429&w=2

O problema todo aconteceu porque as bibliotecas cliente do mysql 4 são disponibilizadas na licença GPL, obrigando quem usar o mysql no desenvolvimento, a abrir o código-fonte dos aplicativos, ou então comprar uma licença comercial.

Boatos correm que estão tentando negociar uma exceção a regra, algo como uma licença especial para o PHP.
O que seria muito justo, devido ao fato do MySQL ter ganhado popularidade graças ao PHP.

Não se desespere, existem SGBD alternativos ao mysql, uma ferramenta que parece ser interessante é o SQLite, o qual já vem habilitado por padrão

nas novas versões do PHP. Na documentação oficial, o capitulo que fala do SQLite já está sendo traduzido por Fernando Correa da Conceição.
Algumas camadas de abstração de banco de dados como o metabase (http://www.phpclasses.org/metabase) já suportam essa ferramenta.

Mais informações sobre o assunto, você pode encontrar em listas de discussões como a php-pt e no news do UOL sobre PHP

Retornando ao artigo, que esse assunto do mysql vai longe.
Para finalizar alguns links sobre a nova versão do PHP (em inglês).

. Um exemplo prático das novas melhorias na programação Orientada a Objetos:
http://www.php.net/zend-engine-2.php

. Veja o changelog completo da versão 5 :
http://www.php.net/ChangeLog-5.php

. Baixe versões compiladas a cada 4 horas (nesse site já era possível baixar versões do PHP5 antes mesmo de ser lançado como Beta):
http://snaps.php.net/

. Faça perguntas ao Zeev da Zend sobre o PHP5
http://www.zend.com/php/ask_experts.php

. Mais informações sobre o futuro do php :
http://www.zend.com/zend/future.php

Tentei ser breve, espero ter conseguido passar o recado.
Até o próximo artigo.

Alessander Thomaz

Comentários:

Mostrando 1 - 10 de 41 comentários
kennedy paulo disse:
cara quero um scrip para comentar em galeria e ficar tudo em uma pagina que o internalta pode ver como os 10 utimos comentario manda resposta para meu msn se vc tem isso ai kennedipaulo@hotmail.com se vc tivel algum ai manda ai para mim
30/04/2006 5:30pm (~18 anos atrás)

Renato Atilio disse:
> Discordo em partes, concordo que poderá ser utilizado o sqlite, mas ele tem menos funções que o mysql, não tem auto_incremento, nem um monte de funções de data, manipulação de texto etc. Sem contar que o propósito do SQLite é bem diferente do MySQL.
Só para esclarecer, SQLite suporta SIM auto incremento, as funções de data/hora estão em fase de teste e cada vez mais nova funções estão aparecendo.
23/08/2003 6:02pm (~21 anos atrás)

As aplicações hojem em dia tem um problema em comun:
Elas mantei a compatibilidade com o velho.

Muitos vão dizer que estou louco, mais e uma verdade que não podemos ignorar. Quando uma aplicação evolui ela deve evoluir em todo os sentidos, por exemplo as variveis globais: A quanto tempo descobrimos que variveis de $_GET e $_POST se tornando global é uma falha na segurança tremenda? Mais praticamente nada foi feito. O processo de transformar essas variveis já atrapalha na performace, depois na segurança. Eu realmente sou afavor de que o PHP5 vem sem isso definitivamente.

Ai vc pergunta: E a compatibilidade? Ai eu respondo: bons programadores já sabem a anos que usar esse macete e besteira, então todos os bons códigos estão de acordo com a nova especificação, manter isso e manter uma falha so porque vai da um certo trabalho concertar códigos.

Tudo bem quer manter a compatibilidade? Fassa um modulo separado para menter essa compatibilidade, ai eu quero ver se o programador de má qualidade, vai achar melhor sair abilitanto modulo ou se adequar ao mercado. Há ainda um outro fator: Quando o servidor dele cair porque ele fez uso de má código ele vai botar a cupa nos proficionais que criram o PHP e não na sua falta de interesse pela segurança.

Pra mim comodidade não anda junto com eficiencia, nem muito menos com qualidade. A tanto lixo em aplicações de boa qualidade so para manter compatibilidade que dá do de sertos sistemas.

Não é que eu seja contra a compatibilidade, mais asvezes a certos preços que devemos pagar para obter um resultado aceitavel !

Desculpa se feri os sentimentos de algum acomodado que acha dificil trocar $eu por $_GET['eu'] ....
23/08/2003 8:25am (~21 anos atrás)

Olá Rodrigo,


O que eu quis dizer é que, como a maioria dos usuários não da muita importancia para a licença, podem haver casos onde tais usuários criem sistemas "comerciais" usando PHP (o que é permitido) e MySQL sem respeitar a licença do MySQL que determina que para aplicações comerciais, deve-se utilizar uma licença paga.

Para evitar problemas para o lado do PHP, o MySQL não seria compilado por padrão, de modo que não poderiam acusar o PHP de "influenciar" o descumprimento da licença do MySQL. Retirar o MySQL por padrão é um modo de dizer:
- "Ei, se você está usando o MySQL foi VOCÊ quem o ativou e se for ilegal o PHP não tem nada a ver com isso."

Sendo que para utilizar o MySQL o usuário "deveria" estar sabendo o que está fazendo. Afinal, todos sabemos como são brigas por direitos de uso e propriedade, sempre se acha algo para processar alguém, mesmo que as vezes seja incoerente como no caso da SCO.

Portanto, esta é uma maneira do PHP se proteger, além de dar mais uma martelada a favor do código 100% livre.

Abraços,
Eduardo R. Maciel
22/08/2003 11:50am (~21 anos atrás)

Vi seu artigo, parabéns pela iniciativa e pelo artigo.
Um abraço,
Alessander
21/08/2003 2:47pm (~21 anos atrás)

Cheguei tarde na conversa, mas o artigo o Eduardo explica melhor isso.

Mas é mesmo uma pena que esteja parado o projeto.
21/08/2003 2:44pm (~21 anos atrás)

Caro Eduardo,

Acho que temos uma confusão aqui (nada sério).

A licença GPL se aplica aos códigos fonte, não aos resultados.

Se eu usar (parte de) os fontes do MySQL para desenvolver um módulo para um programa meu, ou algo assim, este programa deverá ser GPL.

Agora, se eu associar uma interface com MySQL em meu programa (feito em C, em PHP, em Python, sei lá mais em quê), ele não precisa ser necessariamente GPL (apesar de defender isto).

Se eu criar um programa em PHP usando interface com MySQL, este programa pode ser proprietário, nada na licença impede isto.

O que pode realmente dar problema é a interação feita nos módulos, podendo haver um certo desconforto ou alguma confusão quanto à combinação da GNU/GPL com a BSD/X, mas isto já aconteceu antes e foi resolvido, é só seguir o caminho das pedras.

Caro Eduardo, obrigado pelo exclarecimento e espero ter clareado melhor (em vez de ter enrolado mais ainda o meio de capo).

[]'s
Rodrigo Cacilhas
18/08/2003 11:33am (~21 anos atrás)

Rodrigo,

na verdade, o que ocorre é que ao licenciar um software sob a GPL, você diz que qualquer pessoa pode fazer o que quiser com este software, modificá-lo, melhorá-lo, etc. DESDE QUE mantenha o fonte aberto a todos e não "venda" o produto. Isso significa que se você utilizar o MySQL em suas aplicações, estas NÂO poderão ser comercializadas como são feitas com o mysql que tem a licença LGPL. A menos que você compre uma licença para uso comercial.

É por isso, que as empresas como RedHat, SuSE, etc vendem apenas a "distribuição" do linux. Elas não estão vendendo o kernel do linux nem os aplicativos, apenas estão cobrando pelo serviço que prestam ao juntar o kernel, todos os aplicativos, compilando-os e empacotando numa caixa com CDs e manuais. E é exatamente por isso que chamamos de "Distribuição". Tanto que se você não quiser comprar a caixa ou os CDs, pode baixar de graça pela internet.

o pessoal do PHP, achou que isso geraria confusão, visto que muita gente que desenvolve utilizando PHP + MySQL sequer sabe o que significam as licenças e para evitar problemas para o lado deles, esta pensando em não habilitar mais o mysql por padrão.

Espero ter ficado mais claro agora.

Abraços,
Eduardo R. Maciel
15/08/2003 11:39am (~21 anos atrás)

Esta é a primeira vez que veja alguém abandanondo algum programa por ter se tornado livre.
Isto me parece uma grande representação de ignorância. Até onde sei, a licença GNU/GPL apenas proíbe a criação de programas proprietários a partir de códigos fonte livres, não gerados por um programa livre.
Trabalho para uma ONG e usamos muitos softwares livres e nunca tivemos problemas desta ordem.
Se alguém desejar, posso enviar uma cópia em português da GNU/GPL para avaliação.
A meu ver, tem caroço ($$) de baixo desse angu.
13/08/2003 9:58am (~21 anos atrás)

Bom dia pessoal,

Como muita gente solicitou mais informações, escrevi um pequeno artigo sobre o projeto SRM comentando e explicando o que é e como funciona. Creio que em breve estará disponível a todos na seção artigos.

abraços,
Eduardo R. Maciel
13/08/2003 7:36am (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)