Orientação a Objetos no PHP5
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.
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.
Páginas:
1
2
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
(~21 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
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
(~21 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?
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
(~21 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
(~21 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.
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
(~21 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...
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
(~21 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 ?
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
(~21 anos atrás)
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.