PhpBox v 1.0
03-Jun-08
Verifique sempre a página mais atual sobre o PhpBox aqui!
Ok!
Será que é um recorde em 3 dias lançar 3 versões diferentes de uma mesma classe? Bom, não são exatamente 3 dias, já que já passou da meia noite e ontem eu não lancei nada! Mas não havia melhor momento para eu lançar a versão 1.0 (uhul, versão 1.0 versão 1.1 na verdade…) do PhpBox justamente agora que o pessoal da boo-box acabou de atualizar a API! Bom, como é um novo release, muita coisa mudou, por isso vou começar desde o início.
O que é PhpBox?
Para quem ainda não conhece, PhpBox é uma classezinha que criei para manipular os dados recebidos através das APIs de desenvolvimento da boo-box via PHP. Boo-box é um serviço que te permite contextualizar os anúncios de produtos veiculados através de programas de afiliação como BuscaPé, Amazon, Submarino, Americanas e etc…
Antes de entrarmos em maiores detalhes…
Baixe o PhpBox aqui! (phpbox-v1.1.zip) 3kb
Dentro do zip você terá 2 arquivos e uma pasta:
cache/ example.php phpbox.php
Em “phpbox.php” você tem o código que faz a mágica acontecer. Em “example.php” você tem algum código básico que te mostra como a classe funciona e a pasta “cache” serve para guardar os arquivos gerados pelo sistema de cacheamento do script.
Tá, e daí… Como funciona?
Antes de tudo, você precisa se registrar num programa de afiliação. Depois que você possuir um login e um ID, você pode começar a usar a boo-box da forma que quiser. Para utiliza a boo-box via PhpBox é fácil. No seu script, escreva algo assim:
include('phpbox.php');
$phpbox = new PhpBox();
Antes de começar a utilizar os métodos da classe, existem duas coisas que você precisa saber:
1ª - Por default, o script tentará resgatar os dados da API via cURL mas nem todos os servidores possuem esta biblioteca habilitada. Neste caso, você precisa desligar a utilização do cURL antes de utilizar qualquer método. No entanto, nós profundamente recomendamos o uso de cURL. Isto porque a API pode conter alguns problemas que são corrigidos através do script, e somente através da utilização do cURL é que nós podemos manipular os dados desta forma (tá, eu sei que também seria possível por fopen(), mas eu não tive muita paciência pra implementar esta função…). Para desligar a utilização do cURL é fácil, basta fazer o seguinte:
1ª - Por default, você vai utilizar a função file_get_contents() para manipular o XML que vem através da API. Caso o seu host desabilite a manipulação de arquivos externos, você ainda pode utilizar cURL sem maiores problemas. Para isso, basta fazer o seguinte:
$phpbox->curl = true;
2ª - O PhpBox, por default, habilita o cacheamento dos dados resgatados via boo-box. Para desligar esta função, basta fazer o seguinte:
$phpbox->tocache = false;
Por default, a pasta que vai receber os arquivos é a “cache” que vem junto com o pacote. Para mudar o destino dos arquivos, faça o seguinte:
$phpbox->cachedir = './cache/';
Não esqueça de colocar a barra no final da string! Por padrão, também, o arquivo de cache vai durar dois dias até uma renovação. Você pode modificar esta opção da seguinte forma:
$phpbox->cachetime = 86400;
Pronto! Agora você já sabe tudo o que você precisava saber antes de começar a utilizar os métodos da classe! Então…
Vamos aos métodos!
São 4 os métodos implementados nesta classe: get, randon, merge e shuffleRes.
get
O método get é a base para todos os outros métodos. É com ela que você consegue resgatar os resultados de forma mais simples através do PhpBox. Veja:
$array = $phpbox->get('submarinoid', '173091', 'ipod', 5);
Parâmetros… No primeiro você deve especificar o programa de afiliação no qual você possui registro, no segundo, você indica seu ID. O terceiro parâmetro é referente à tag (ou tags) que você deseja utilizar para fazer sua pesquisa. Esta tag pode ser uma string comum ou um(a) array com diversas palavras, então você poderia fazer algo assim:
$tags = array('livro', 'design', 'decoração');
$array = $phpbox->get('submarinoid', '173091', $tags, 5);
O último parâmetro determina o limite de resultados que sua array vai ter, mas este parâmetro é opcional, ou seja, algo do tipo “$phpbox->get(’submarinoid’, ‘173091′, $tags);” iria funcionar sem problema algum, lembrando que a omissão deste parâmetro determina um limite de 6 produtos por consulta (não é minha culpa, a API que funciona assim)! Ao executar este método, você terá na variável $array (por exemplo) o seguinte resultado:
Array
(
[0] => Array
(
[img] => http://i.s8.com.br/images/books/cover_tn/img7/pq584147.jpg
[title] => Cozinha dos Artistas: Brasileira e Internacional - vol. 1
[uri] => http://boo-box.com/prod/u90w0/affid:173091
[price] => R$ 78,00
[store] => submarinoid
[tags] => livro,design,decoracao
)
[1] => Array
(
[img] => http://i.s8.com.br/images/books/cover_tn/img6/pq21246306.jpg
[title] => O Livro e o Designer I: Embalagem, Navegação, Estrutura e ...
[uri] => http://boo-box.com/prod/u90w8/affid:173091
[price] => R$ 46,40
[store] => submarinoid
[tags] => livro,design,decoracao
)
Os índices são bem óbvios. Você tem ali a imagem, o titulo do produto, o endereço referente, o preço (que nem sempre está presente, tome cuidado!), a loja de origem do produto e as tags utilizadas.
randon
Com este método você pode especificar mais de um programa de afiliação e deixar o script escolher qual será mostrado naquele instante! Veja:
$programas = array('ebayid' => '1042', 'amazonid' => 'boobo-20', 'submarinoid' => '173091');
$tags = array('livro', 'design', 'decoração');
$array = $phpbox->randon($programas, $tags, 5);
Os resultados são similares aos da função get e mais uma vez, o último parâmetro se refere ao limite, ou seja, é um parâmetro opcional.
merge
Com este método você pode fundir os resultados de dois ou mais programas de afiliação em uma array apenas. O funcionamento dela é identico ao do randon. Veja:
$programas = array('ebayid' => '1042', 'amazonid' => 'boobo-20', 'submarinoid' => '173091');
$tags = array('livro', 'design', 'decoração');
$array = $phpbox->merge($programas, $tags, 5);
shuffleRes
Este método é exatamente igual ao merge. Na verdade é uma cópia. A diferença é que com este método, todos os resultados da sua array serão bagunçados e misturados. Veja:
$programas = array('ebayid' => '1042', 'amazonid' => 'boobo-20', 'submarinoid' => '173091');
$tags = array('livro', 'design', 'decoração');
$array = $phpbox->shuffleRes($programas, $tags, 5);
Licença
Esta classe está licenciada sob a WTFPL. O que isto quer dizer? Quer dizer que você pode fazer o que você quiser com esta classe! Bom, é um pouco mais elaborado que isso, mas é basicamente isso
Considerações finais…
Se voce achou legal, achou algum erro, algum bug, quer me elogiar, quer me xingar, enfim… Qualquer coisa, entre em contato. Você pode enviar comentários aqui que eu respondo, ou pode me enviar emails em eusou [at] eberfdias.com! É isso! E se você usar, me deixa um comentáriozinho por aqui dizendo o que achou, beleza? Um abraço e até a próxima!

