+2

Orientação a Objetos no PHP5

criado por Eduardo R. Maciel em 23/09/2003 9:55am
No PHP5 o modelo de Objetos foi totalmente reformulado. Enquanto que no PHP4, os objetos poderiam ser qualificados como "arrays que comeram espinafre". Aliás, na nova versão, o PHP receberá uma implementação muito otimizada de Objetos, pois o próprio Zeev Suraski admitiu que o modelo e implementação de OO no PHP4 era fruto do resultado de "one restless night". É claro que ele estava exagerando, afinal era possível fazer muita coisa Orientada a Objetos no PHP4, e mesmo ele não tendo suporte e implementação de uma série de features, em geral haviam meios de contornar essas deficiências, bastando apenas criatividade.

Mas agora, finalmente, poderemos deixar esses workarounds de lado e partir para a verdadeira orientação a objetos. Verdadeira em partes, pois notem que mesmo com a nova implementação, o PHP continua não sendo completamente voltado para Orientação a Objetos. Existe a opção, mas ninguém é obrigado a utilizá-la como no Java em que tudo é representado por objetos por exemplo.

Não vou comentar todas as novidades do PHP5 neste artigo, pretendo escrever outros mini-artigos. Mas para ilustrar algumas das novidades, escrevi um pequeno exemplo que se encontra na página seguinte.

Comentários:

Mostrando 1 - 10 de 13 comentários
Giba disse:
Antes de mais nada, parabéns pelo artigo, possui colocações que nunca ouvi, mas me parece serem novidades boas mesmo.

Eu particularmente uso o php no processo procedural conhecido até por programar no passado em Clipper e até o momento além do php em FOXPRO.

Ao entrar em contato com um CMS chamado xoops, passei a pensar diferente, agir diferente e ver que mesmo a orientação a objetos do php4 serem apenas um charme para muitos, está se concretizando.

Praticamente todo o kernel dele é feito em classes e todos com orientações muito bem estruturadas. Você sente isto e começa a gostar e ver que vale a pena.

Tá certo que o sistema de referência de OO do php é no mínimo estranho para muitos, mas como vim do Clipper originalmente até que é normal usar "->".

Novamente parabéns pelo trabalho e esperamos encontrar mais tutorias e exemplos como este de orientações a objeto, pois agora estou usando mesmo em todos os novos desenvolvimentos, mesmo perdendo um tempinho no inicio, vamos ganhar no futuro.
22/10/2003 5:52pm (~13 anos atrás)

Diogo Gomes disse:
Concordo incrivelmente com o potencial do PHP, e acredito que o PHP se tornará um futuro concorrente do JAVA e do .NET
21/10/2003 5:45pm (~13 anos atrás)

Srs,

Agradeço os emails e comentários de todos.

E aproveito para desculpar-me por não ter respondido as dúvidas ou comentários. Mas estou fora do país trabalhando em um projeto em fulltime, tanto que meu tempo livre se resume a dormir.

Ao retornar, postarei a continuação do artigo.

Abraços à todos.

Atenciosamente,
Eduardo R. Maciel
12/10/2003 9:26am (~13 anos atrás)

OO veio para nos salvar.

Muito legal mesmo o seu artigo!
02/10/2003 5:05pm (~13 anos atrás)

mUITO bOM O aRTIgo...
pREViSÃO PAra o PHP 5?
30/09/2003 5:04pm (~13 anos atrás)

Eu também que dentro em breve o php se torne um potencial concorrente do Java e do Python(que ao meu ver já um concorrente forte do Java).

No PHP falta algumas coisas que poderia dar a ele melhor funcionamento, como um biblioteca com mais funções de trabalhor interno com o SO, tipo uma função de entrada de dados, acesso mas direto a memoria (avidente mente, muito bem trabalhado para garantir segurança e estabilidade).

O PHP é uma linguagem de potecialidades incriveis, talvez por se tratar de uma liguagem que vem crecendo com os pes no chão e com a cabeça no lugar.

A projetos interessantes como o BinaryPHP (http://www.noticiaslinux.com.br/noticia.php?codigo=1060827699) mais que precisam amadurecer, por exemplo: o BinaryPHP pretende transforma PHP em C++, depois para copilar. Porque não já faz um copilador direto para PHP, evitando assim os erros de conversão, que existem nesse tipo de projeto?
29/09/2003 11:17am (~13 anos atrás)

Concordo contigo Roberto, e acrescento que da mesma forma que Java não te obriga a fazer um sistema totalmente orientado a objetos(com classes abstratas e castings e mais castings e tudo aquela loucura :))... você também consegue fazer "procedural"... usando apenas métodos estáticos e tal.. e fica muito rápido que creio poder comparar com PHP em termos de velocidade. :)
28/09/2003 3:57pm (~13 anos atrás)

Também apreciei o artigo e a resposta do colega Éverton. Estou iniciando no Java porque infelizmente o PHP não faz tudo que eu preciso, as vezes é limitado, o PHP-GTK é novato, pouco suporte, poucos recursos.
O que tenho a dizer é que o Java é poderoso mas é um tédio declarar as variáveis, e converter um tipo que se recebe de um form, você fica à procura de uma classe para fazer algo tão simbólico como um replace de string. Em suma, o PHP tem muito a evoluir e daqui alguns anos poder ser algo tão maduro a ponto de concorrer com o Java, porque o PHP é mais "inteligente" em seus recursos. O amadurecimento do PHP em OOP é uma necessidade, mas também não põe limite se você quer proceduralmente.
27/09/2003 9:06am (~13 anos atrás)

A responsta (podemos dizer) ainda não existe em definitivo. A orietação a objeto, e uma das muitas tecnologias que podemos usar para construir aplicações, no caso do PHP os progamadores tendem a não usar justamente por se tratar mais de "arrays que comeram espinafre", e por problemas que acarretam em perda de performace como o problema da passagem por referencia ou por valor.

Dizer que o php não precisa evoluir, e pra mim, dizer uma besteira, pois toda linguagem precisa e vai evoluir, já que temos OO, porque não melhorala, sem falar que o PHP tem evoluido em aplicações mais proficionais como ser usadado para criar programas, e estas evoluções (em utilização) so tem a ganhar com o suporte a OO bem feito.

Quanto ao artigo:
Gostei muito... andei testando o PHP5 antes mesmo de sair a primeira versão de teste oficial, (para quem não sabe ou esta flutuando por ai, e possivel acompanhar as versões intermediaras em http://snaps.php.net/), mais quando eu teitei a copia de objeto atraves do metodo copy (muito importante agora no PHP) não estava funcionando, nem a implementação para namespace, mais depois disso não tive tempo de testar o funcionamento das versões de teste posterios, mais acredito que os problemas foram solucionados...

Parabéns pelo artigo...
25/09/2003 12:37pm (~13 anos atrás)

muito bom o artigo. Teremos uma linguagem com tipagem dinamica, com suporte quase total a orientação a objetos.
Voce sabe ainda qual seria a limitação do php 5 em relação a orientação a objetos?
JA tem alguma previsão de lançamento o php 5 ?
24/09/2003 1:15pm (~13 anos atrás)

Novo Comentário:

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