Como Converter Arrays em Objetos e Vice-Versa Usando Uma Linha de Código

Nem sempre o que temos é o que queremos, e trabalhar com arrays e objetos simultaneamente acaba se tornando chato, eu pessoalmente não gosto muito de arrays, principalmente quando é para exibir na tela os resultados de uma pesquisa do banco de dados ou coisa do tipo.

Já vi em muitos código fontes, funções um tanto que imensas para realizar a tarefa de conversão de tipos – arrays para objetos ou objetos para arrays. Mas o que muita gente não sabe é que existe um atalho para isto, simples e rápido. Vejamos um exemplo:

$dados = array('nome' =>'Mateus', 'sexo'=>'Masculino');
echo $dados['nome']; //Resultado: Mateus
echo $dados->nome; //Resultado: Erro

$dados = (object) $dados; //É aqui que tudo funciona...
echo $dados->nome; //Resultado: Mateus

Anteriormente tinhamos uma array – $dados -, que em um “passe de mágica” virou um objeto. Para converter um objeto em uma array o processo é bem simples também:

$array = (array) $objeto;

Também é possível formatar outros tipos, como string, integer ou float:

$numero = (float) $numero;
$boolean = (boolean) $boolean;
$string = (string) $string;
....

Tecnicamente falando, este processo é chamado de Type Casting, ou Tipo de Vazamento em português e como o próprio nome já diz, ele converte o modo de vazamento (ou distribuição) de um elemento. Para saber um pouco mais, veja no manual do PHP sobre Type Casting.

Se você não sabe o tipo do elemento, use a função var_dump ou a função para debug. Até mais.

Debug, a Função Que Faltava no Core do PHP

Quem nunca fez um debug em PHP? Debugar objetos, arrays, strings ou seja lá o que for é sempre uma tarefa repetitiva, você sempre faz a mesma coisa, até o que não precisaria ser feito. Esta dúvidando? Então preste atenção quando for debugar seus códigos em PHP, ASP, Python…

Agora eu apresento a vocês a função DEBUG; uma função, uma linha e mais tempo pra tomar café e brincar com seu cachorrinho:

/**
 * Debug simples para objetos, arrays, strings ou qualquer tipo de dados
 * Adiciona tags HTML para melhor visualização
 * @param mixed $elem - elemento a ser debugado
 */
function debug($elem){
	echo '<pre>';
	var_dump ($elem);
	echo '</pre>';
}

E como ninguém é de ferro, um exemplo:

debug($objetoX);
debug($minhaArray);
...

Fica ai o Snippet em PHP pra quem já cansou de ficar dando echo sempre ;).

Prosseguindo com CSS3 – Bordas e Sombras

CSS 3: border-radius | border-image | box-shadow

Seguindo com a série de posts sobre CSS3, hoje vamos falar sobre bordas e sombra (border e shadow em inglês) com CSS3, mais especificamente falaremos sobre:

  • border-color
  • border-image
  • border-radius
  • box-shadow

Se você não viu o post anterior a este, é bom ver agora :

Iniciando com CSS3

A partir de agora os tutoriais desta série serão feitos em HTML5 e CSS3, então pare de usar Internet Explorer < 9. Se você ainda não conhece os seletores em CSS3, veja o artigo anterior.  Algumas propriedades só funcionam em determinados browsers, quando isso ocorrer vou informar :).

Shortlinks no WordPress 3.0

Juntamente com o estouro das “mini” redes socias como Twitter e Facebook, foi lançado o WordPress 3.0 não muito atrás. Lançamento que já veio um pouco “otimizado” para essas redes. Hoje vamos ver como utilizar shortlinks para ganhar alguns caracteres e utilizá-los para outro fim.

Porque Usar Shortlinks?

Como o número de caracteres nas redes é bem limitado – 140 caracteres no Twitter por exemplo – algumas URLs ultrapassam esse limite, perdendo a utilidade em redes sociais para compartilhamento. Isto acaba sendo um ponto negativo quando se tem um post ótimo, que deve ser compartilhado.

Até pouco tempo atrás a solução era usar um encurtador de urls para compartilhar o link, era – e ainda é – um pouco cansativo ter de abrir o site do encurtador, colar o link original, pegar o novo link e sair distribuindo. Esta era a solução!!!!

Além disso, faltaram alguns pontos que quase ninguém parou para pensar, sim estou falando sobre SEO e os encurtadores… faltaram questões como:

  • O redirecionamento é 301, 302…?
  • O site vai receber o link juice da URL encurtada?
  • O Page Rank vai para o encurtador ou para o site?
  • etc…

Com os shortlinks providos pelo WordPress, você não vai precisar fazer responder a estas perguntas ou até mesmo ter de refazer sempre o mesmo processo em um encurtador. Outro ponto é que o WordPress 3.0 também gera automaticamente um link no cabeçalho (antes de fechar a tag </head>) com o shortlink, seria algo +/- assim:


<link rel="shortlink" href="http://www.seusite.com/?p=717" />

O segredo por trás desta funcionalidade é justamente o ID do post, como você pode ver – /?p=717.

O Shortlink

Adeus IE6 – Plugin jQuery Hardcore Para Dar Um Fim ao Internet Explorer 6

Você já deve ter visto vários plugins na Internet para bloquear usuários do Internet Explorer, mas nenhum é como este – e olha que eu procurei….

Diga adeus de uma vez por todas ao Internet Explorer 6

Página do projeto | Instruções | Demonstração

A Estratégia

A estratégia que montei para este plugin tem o mesmo objetivo dos demais, mas de uma forma diferente. Basicamente os plugins atuais ou pedem unicamente para atualizar o Internet Explorer ou usar outro navegador, o que não acho interessante em nenhum dos casos. Por quê? Simplesmente porque se eu unicamente atualizar o Internet Explorer 6 para uma versão mais recente (no momento seria o IE8), os outros browser que convenhamos, são melhores, iriam “ficar de lado”, o que não considero bom pois as novidades estão surgindo dos “outros” browser, além da taxa de novas atualizações serem bem maior do que o Internet Explorer. Há mais motivos, mas você já deve estar processando em sua mente boa parte deles :).

Por outro lado, se eu somente migrar para outro navegador, o bendito do IE6 vai continuar instalado no PC do seu visitante, correndo o risco de volta e meia ele usar o IE6, o que não queremos.

Bom diante disso o Adeus IE6, primeiramente bloqueia o usuário (em outra palavras ele não navega no site :)), “forçando” a atualização… mas ele vai ser convencido de que será melhor atualizar logo seu navegador ;).  Em primeiro caso a atualização do Internet Explorer, depois… se ele quiser… ele testa outro browser (melhor um pássaro na mão do que 2 voando). Enfim o visitante terá todas as opções, agora caberá a ele fazer a sua escolha.