gildot

Topo
Sobre
FAQ
Tópicos
Autores
Preferências
Artigos
Sondagens
Propor artigo


8/3
gildicas
9/30
jobs
10/9
perguntas
10/25
press

 
OO PHP (Classes Repository)
Contribuído por scorpio em 17-12-01 9:17
do departamento class-pool
php Manuel Lemos escreve "Num tópico de discussão anterior foi mencionado que a linguagem PHP não tem boas capacidades para programação por objectos. Parece-me que essas opiniões reflectem apenas falta de informação e também talvez uma vontade implícita de criticar a PHP só porque não é a sua linguagem preferida.
Para combater essa falta de informação, convido a todos ir ao site PHP Classes Repository que desenvolvi há quase 3 anos atrás. "
Este site contém quase 400 classes de objectos em PHP de distribuição gratuita contribuidas por quase 200 programadores de PHP. O site tem sido cada vez mais acedido a uma média de 10.000 utilizadores por mês dos mais de 50.000 inscritos, crescendo a um ritmo de 2.000 novos utilizadores por mês.

Se alguém tem dúvidas das capacidades do PHP para programação por objectos, penso que visitando este site essas dúvidas serão desfeitas.

Convido também todos programadores que tenha desenvolvido classes de objectos em PHP a contribuirem uma vez que têm havido muito poucos (quase nenhuns) portugueses contribuintes ao contrário por exemplo dos brasileiros.

Para quem desenvolve software em PHP e não pretende tirar proveito comercial das suas classes, este site é um óptimo lugar para obter pelo menos a compensação moral de ver o seu trabalho a interessar a muitos utilizadores, uma vez que o site mantém e exibe a contagem (não "burlável") de quantos utilizadores individuais fazem download the cada ficheiro de cada classe.

As classes e os respectivos autores das classes mais atraentes da semana e de todos os tempos figuram página do top de downloads.

O site garante uma elevada audiência (300.000 page views por mês) a cada classe que é lançada ou actualizada enviando uma mensagem de aviso aos utilizadores interessados. Isto garante audiência automática e indiscriminada a qualquer mortal programador de PHP que deseje contribuir com o seu trabalho para o bem da comunidade. Actualmente, são enviadas cerca 33.000 notificações (2/3 dos utilizadores inscritos no site) quando é aprovada uma classe nova.

Curiosamente, o conceito deste site parece ter motivado outros a imitá-lo e inclusivamente a tentar fazer cyber-squating registando o nome do domínio phpclasses.com apesar da iniciativa não ter passado apenas de intenções.

De qualquer modo, devido ao tráfego intenso que o site tem tido, especialmente após o envio das mensagens de notificação, o site por vezes não responde com toda a prontidão que seria desejável.

As boas notícias são de que, a pedido de muitas famílias, em breve o site será disponibilizado para replicação em sites espelhos (mirrors) permitindo que o seu conteúdo não personalizado esteja disponível em servidores mais próximos dos utilizadores por todo mundo, aliviando assim a carga do servidor central.

Nessa altura, o site poderá já aparecer traduzido noutros idiomas para além do inglês, uma vez que o site foi pensado desde o início para este fim. Os ISP ou Web masters interessados poderão desde já contactar-me no sentido de participar na fase de testes dos espelhos do site e/ou na fase de tradução do site para Português.

Fiquem à vontade para me contactarem enviando uma mensagem para mlemos@acm.org

www.rtp.pt.... | Carlos Paredes  >

 

gildot Login
Login:

Password:

Referências
  • página do top de downloads
  • phpclasses.com
  • mlemos@acm.org
  • Manuel Lemos
  • tópico de discussão anterior
  • PHP Classes Repository
  • Mais acerca php
  • Também por scorpio
  • Esta discussão foi arquivada. Não se pode acrescentar nenhum comentário.
    Gostei... (Pontos:2)
    por Gamito em 17-12-01 10:09 GMT (#1)
    (Utilizador Info)
    ...sim senhor.
    Só não gostei foi de ter que me registar para fazer um download.
    Não havia necessidade.

    Mário Gamito
    "Make everything as simple as possible... but not simpler"
    Albert Einstein
    Re:Gostei... (Pontos:1)
    por mlemos em 17-12-01 16:32 GMT (#4)
    (Utilizador Info) http://www.ManuelLemos.net/

    Na verdade o facto de requerer o registo para fazer download é a chave do sucesso do site por 2 motivos:

    1. Se as pessoas não se registarem, não podem ser avisadas por e-mail de novas classes ou classes alteradas. Isto significaria que não haveria como garantir uma boa audiência às novas classes que cada um envia para lá. Logo não haveria tão grande motivação para cada um continuar a contribuir. Claro que as pessoas que não querem receber as notificações pode especificar isso nas suas opções de registo mais tarde.
    2. Só com os utilizadores registados a fazerem download é que é possível fazer uma contagem rigorosa dos downloads que não é possível burlar eventualmente por autores mais sedentos de aparecer nos tops. O download de um mesmo ficheiro em diferentes momentos pela mesma pessoa, apenas conta por 1. Assim os tops reflectem a realidade de quantas pessoas fizeram download de cada ficheiro durante toda a sua história.

    Note-se que a opção de enviar as suas classes para este site é de cada autor. Se não interessasse aos autores terem este sistema que requer o registo para download das suas classes, eles concerteza não enviariam para este site.

    De qualquer modo está prevista uma opção individual por ficheiro em que cada autor diz se requer ou não que o utilizador esteja registado. A opção já está na base de dados do site, mas ainda não tive tempo de a implementar. Claro que depois, os downloads desses ficheiros por utilizadores não registados não contarão para os tops.


    Soluções (Pontos:2)
    por Strange em 17-12-01 17:40 GMT (#6)
    (Utilizador Info) http://strange.nsk.yi.org/
    1. Perguntar no momento do download se quer registar um email para onde seriam enviados por email avisos das novas classes ou actualizações.
    2. Cookie no utilizador para o identificar (tb passível de ser usado em 1.)

    Claro que não são soluções perfeitas, mas a do registo também não é.

    Outra coisa que propunha é na descrição das classes a informação sobre a licença que as governam (o não poder saber a licença causou em que não me registasse e não sacasse nenhuma das classes).

    hugs
    Strange

    Re:Soluções (Pontos:1)
    por mlemos em 17-12-01 18:44 GMT (#8)
    (Utilizador Info) http://www.ManuelLemos.net/
    1. Perguntar no momento do download se quer registar um email para onde seriam enviados por email avisos das novas classes ou actualizações.

    Se fizesse isso, a maior parte das pessoas iam responder que não queriam receber porque iam achar que era para receber publicidade ou qualquer outro tipo de spam indesejado. Assim, perderia o efeito de garantir uma boa audiência a cada nova classe enviada que é o que tanto tem motivado os autores a contribuirem.

    2. Cookie no utilizador para o identificar (tb passível de ser usado em 1.)

    Isso é facilmente burlável como expliquei.

    Claro que não são soluções perfeitas, mas a do registo também não é.

    Sim, mas é preciso ver que este é um site para promover o trabalho de programadores de PHP, e se não for assim a promoção não será tão eficiente e por consequência tão motivante para os autores. Sites que não requerem o registo para fazer download existem aos montes, mas que eu saiba nenhum garante tamanha audiência mensurável.

    Outra coisa que propunha é na descrição das classes a informação sobre a licença que as governam (o não poder saber a licença causou em que não me registasse e não sacasse nenhuma das classes).

    Sim, isso já está na minha lista de coisas a fazer propostas pelos utilizadores. O problema é que tenho mais um monte de outras coisas que preciso de dar prioriadade, como por exemplo, um melhor sistema de upload e um sistema de votação das classes pelos utilizadores. Lá chegarei um dia. De qualquer modo, obrigado pela sugestão.


    Talvez no futuro !!! (Pontos:1)
    por nsp em 17-12-01 10:25 GMT (#2)
    (Utilizador Info)
    Não é por ser permitido usar o conceito de objectos e classes que torna uma linguagem com boas capacidades de programação orientada a objectos. No máximo pode-se dizer que a linguagem tem as bases para isso!

    Mesmo realçando o contributo do autor do artigo para essa mudança, o php vai ter que evoluir muito para se tornar uma linguagem orientada a objectos .

    O facto de não ser compilado torna tudo muito mais dificil, pois uma das vantagens das linguagens OO é a possibilidade de referencia a objectos externos para o qual o php não tem suporte. Para não falar na falta de suporte para interfaces, que é a capacidade mais rica de uma linguagem orientada a objectos.

    Penso que o caminho do php, tal como foi o caminho do ASP, será tornar-se Orientado a Objectos, mas por enquanto ...

    Bye !
    Re:Talvez no futuro !!! (Pontos:3, Informativo)
    por mlemos em 17-12-01 17:07 GMT (#5)
    (Utilizador Info) http://www.ManuelLemos.net/

    Admito que o conceito das classes na PHP é limitado quando comparado com as possibilidades de outras linguagens, como por exemplo Java ou C++. Mas o ponto é que isso não impediu quase 2 centenas de programadores de contribuir com tantas classes de objectos em PHP, muitas delas sendo mesmo brilhantes. Acho que só quem usa é que pode apreciar.

    Por outro lado, não entendi a relação de ser ou não ser compilado e ter ou não ter referências, com a programação por objectos.

    Talvez seja bom esclarecer que desde o PHP 4 que através do mecanismo Zend, o PHP compila o código antes de executar. Existe ainda um optimizador opcional que é gratuito, várias alternativas de cache que permitem carregar o código já compilado em memória para não o ter de recompilar em cada acesso e ainda um codificador que grava o código compilado e optimizado num ficheiro que pode ser distribuído.

    Outro facto é que desde o PHP 3 (que já quase ninguém usa) é suportada a passagem de parâmetros por referência. No PHP 4 foi adicionada a capacidade de atribuir a uma variável uma referência para o valor armazenado por outra.

    De qualquer modo, não me parece que compilação e uso de referências tenha a ver com programação por objectos.

    Acho que está a forçar que sejam realçadas as diferenças entre PHP e Java com características que não têem necessariamente a ver com programação por objectos. Por exemplo, que eu me lembre, o C++ não tem (ou não tinha) a possibilidade de definição de multiplos interfaces, nem o Java oferece suporte a herança múltipla, mas isso não torna essas linguagens menos adequadas a programação por objectos, tal como PHP.

    Agora a possibilidade de definição de classes de objectos em PHP é precisamente uma das capacidades que a tornam muito superior a ASP, porque se não haveriam (mas não existem) repositórios de classes de ASP como este de PHP que (note-se) foi desenvolvido há quase 3 anos. Portanto as capacidades de de programação por objectos PHP já são muito antigas.

    Só para ter uma ideia, um outro projecto pessoal, uma meta-linguagem que transforma código escrito em XML em potencialmente qualquer linguagem (PHP, Java e Perl já são suportadas), consiste num compilador completamente escrito em PHP com mais de 20.000 linhas de código distribuido por dezenas de classes de programação por objectos. Se a PHP não tivesse capacidade de programação por objectos, este compilador não teria sido possível.


    Gostei de Ver (Pontos:2)
    por MavicX em 17-12-01 11:28 GMT (#3)
    (Utilizador Info)
    Um bom trabalho feito pelo Manuel Lemos.

    Parece que é mesmo um dos unicos sitios onde se pode arranjar boas classes para PHP à borla.

    Parabems, e espero que a tua iniciativa continue cheia de sucesso.
    Re:Gostei de Ver (Pontos:1)
    por mlemos em 17-12-01 18:30 GMT (#7)
    (Utilizador Info) http://www.ManuelLemos.net/

    Obrigado, mas a verdadeira razão do sucesso do site é o contributo que todos os autores deram ao disponibilizar as suas classes de PHP gratuitamente.

    Portanto, quem tiver as suas classes para distribuir que não hesite de as enviar para este site para o bem de todos.


     

     

    [ Topo | FAQ | Editores | Contacto ]