Ferramentas para o desenvolvimento moderno em PHP

Nem sempre tudo o que aparece no Google e no DuckDuck Go servem para a base de um conhecimento maior. É muito comum pequenas situações e pequenos momentos em que uma informação preciosíssima e rara caem de graça no nosso colo. E quando isso acontece, é bom tomarmos alguma providência para que possamos buscar essa informação posteriormente.

E é essa a intenção dessa postagem. Recentemente estive procurando formas de armazenar as informações de blogs. A busca automática de todos os conteúdos de um blog, mesmo os mais antigos e ter um mínimo de monitoramento seriam pré-requisitos mínimos, claro. Mas não há uma forma de fazê-lo.

Talvez isso não seja um grande problema para empresas como Google ou o Facebook (este último que, inclusive, se tornou uma internet paralela), mas EU gostaria de fazê-lo. E como tenho incutido em mim a ideologia do software livre, quando digo EU, significa que quando isso for possível, todo o mundo terá condições de fazê-lo igual, para qualquer fonte que queiram.

O recurso mais óbvio quando se pensa em fazer busca automática de conteúdo web é através do XML. Por ser um padrão estabelecido, há muitas ferramentas para tratar com o formato, e como estou pensando em conteúdo de blog, sei que todas as mais famosas ferramentas de blog já têm o recurso habilitado por padrão (e o autor nunca vai se preocupar em procurar o botão para desabilitá-lo). Mas há um problema relacionado à DATA de um publicação - ou seja, viola um dos pré-requisitos. Existe um padrão relacionado à quantidade de postagens que são exibidas por vez e alterar esse padrão não é possível em muitas ferramentas que oferecem um link xml. Além disso, o processamento dos feeds são interrompidos pelo servidor quando há algum código ilegal inserido acidentalmente no meio do código do conteúdo.

A idéia inicial era desenvolver proficiência com o uso do XML. Mas além dos problemas supracitados, ultimamente o XML não está sendo algo tão querido pela comunidade de "utilizadores das redes". Isso sem dizer das fontes que não têm o costume de disponibilizar qualquer recurso para a captura da informação por meio da máquina ou que necessitem de login - como o Facebook. Em suma: XML está descartado.

A alternativa é usar alguma ferramenta que seja capaz de utilizar o navegador e capturar as informações do HTML puro. Para tal, conheço o iMacros para o Firefox: https://addons.mozilla.org/pt-br/firefox/addon/imacros-for-firefox/. Já o utilizei em duas situações em que precisava buscar conteúdo diretamente o navegador, quando sequer havia uma forma "amigável á máquina" para se buscar conteúdo. Mas pretendo usar apenas como último recurso, devido à algumas características:

  • Seu uso é pouco conhecido - poucos pessoas usando e desenvolvendo sempre é um problema
  • Dependência de uma linguagem de programação própria - confesso que é um pouco do não vi e não gostei, mas como posso deixar o PHP e o javascript de lado frente há algo tão novo e restrito?
  • Dependência de um terminal comum. Por ser uma ferramenta que não serve para o desenvolvimento, não há a possibilidade de instalar esse recurso em um servidor especializado.
  • Listagens longas podem tornar a busca de informações impossível e extremamente inficiente, precisamente se a busca for feita na linha do tempo do Facebook.

A alternativa que resta é usar alguma ferramenta especializada que simule o comportamento de um navegador. É justamente sobre isso que digo sobre "informações preciosíssimas" que caem de graça no nosso colo. Quando no Drupalday em São Paulo - 2014, uma das palestras foi justamente sobre uma ferramenta de "testes automatizados", do Caio Almeida, onde não tive a visão da relevância de sua palestra e portanto, não tomei o cuidado necessário para poder saber sequer o nome da ferramenta que ele apresentou.

Em vão também foi a busca tanto da própria ferramenta quanto de algum rastro do próprio Caio Almeida sobre o assunto nas buscas de internet.

Nesse meio tempo, encontrei um link que parece ser justamente sobre o que o Caio Almeida estava falando: http://www.phpit.com.br/artigos/10-ferramentas-para-o-desenvolvimento-php-moderno.phpit. Fato é que também não tenho a certeza se a ferramenta que ele apresentou está listada no link. Se não estiver enganado, ele estava falando do Selenium. Mas mesmo que não, ainda tenho disponível para mim outras 9 ferramentas para isso. A lista das ferramentas são o seguinte:

PHPUnithttps://phpunit.de/

Selenium RChttp://docs.seleniumhq.org/

PhatomJS - http://phantomjs.org/

PHP CodeSnifferhttp://pear.php.net/package/PHP_CodeSniffer/redirected

Documentação: http://pear.php.net/manual/pt_BR/package.php.php-codesniffer.php

Phinghttp://www.phing.info/trac/

Documentação: http://www.phing.info/docs/guide/current/

Migração de banco de dados: http://www.davedevelopment.co.uk/2008/04/14/how-to-simple-database-migrations-with-phing-and-dbdeploy/

Xdebughttp://www.phing.info/trac/

Documentação: http://xdebug.org/docs/

PHPDocumentorhttp://www.phpdoc.org/

phpUnderControl - http://phpundercontrol.org/

Zend Framework – ou <insira seu Framework favorito aqui> - http://framework.zend.com/

Documentação: http://framework.zend.com/manual/1.12/en/manual.html

Subversionhttp://subversion.tigris.org/

Jirahttps://www.atlassian.com/software/jira/

Na verdade nem todos têm a mesma finalidade. Mas mesmo assim, fica a documentação. Afinal de contas, essa listagem é de um link um pouco antigo. Documentar em minha ferramenta de blog é uma forma de garantir que terei acesso à essa informação sempre.

 

 

Comentar