php

Instalando o PHP5.3 no ubuntu 9.04

Primeiramente, devemos editar nosso sources.list

sudo gedit /etc/apt/sources.list

Adicione as seguintes linhas, ao final do arquivo

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

Agora, vamos fazer um update, e logo em seguida, instalar os pacotes necessários para ter uma estação LAMP

sudo apt-get update && sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server

Agora você tem uma estação LAMP rodando, pode desfrutar todas as novidades do PHP5.3

Escrever data por extenso com php

O que mais vejo por aí são scripts monstruosos para se conseguir retornar a data por extenso para o usuário. É incrível a falta de coragem do pessoal em procurar novas alternativas para seus códigos, para que fiquem mais limpos, bonitinhos e tal.
Um exemplo que posso citar para justificar o que estou dizendo são dois links, neste o cara cria um script enorme, que logo como vamos ver, será colocado em desuso por nosso script milagroso. Agora esse vai além, o cara cria uma função para a mesma coisa que a anterior, escrever a data por extenso.
Agora vos apresento minha solução:

< ?php
setlocale(LC_ALL, 'portuguese', 'pt_BR', 'pt_br', 'ptb_BRA');
echo strftime("%A, %d de %B de %Y");
// Uma saída esperada é: terça-feira 29 de janeiro de 2008
?>

Juro pra você que é só isso que tem que fazer para se conseguir como resultado a data de hoje por extenso. Esqueça aqueles códigos enormes que você viu.
Locale é um conjunto de informações que define os formatos de número inteiros, monetários, tipo de caracteres, tempo, entre outros. Setlocale() serve para setar o locale que você quer usar no seu programa, como você pode ver alí, dou quatro referência de locales(portuguese, pt_BR, pt_br e ptb_BRA) para que ele não se perca e caso não haja o primeiro locale, ele parta para o próximo.

–edit–
Obrigado Aragão, pela dica.

Faminto por livros

Ahhhh livros! Maravilha que inventaram! Principalmente os de fantasia. Venho acumulando uma quantidade de livros de fantasia absurdo(nem tanto assim). Mas quero mai. Atualmente tenho:

  • Harry Potter e a pedra filosofal
  • Harry Potter e a camara secreta
  • Harry Potter e o prisioneiro de Azkaban
  • Harry Potter e o cálice de fogo
  • Harry Potter e a ordem da fênix
  • Harry Potter e o enigma do príncipe
  • Harry Potter e as relíquias da morte
  • Eragon
  • Eldest
  • As crônicas de Nárnia(todas as crônicas).

Agora quero é comprar os livros da Trilogia Fronteiras do Universo( A Bússola de ouro, A Faca Sutil e A Luneta Âmbar). Aceito doações :)

Além dos livros sobre histórias fantásticas, também tenho apreço por livros que engrandecem o meu intelecto, e claro, alimentam meu conhecimento na minha profissão(WebDeveloper).
Essa semana, comprei dois novos livros, são eles:

  • PHP, programando com orientação a objetos – Pablo Dall’Oglio
  • Ajax, guia prático – Walace Soares

Programando em php com o código limpo

Logo quando comecei a programar em php, qualquer coisa que eu escrevesse que desse resultado estava bom. Linhas enormes, expressões sem sentido mas funcionais. O fim! Então, um belo dia, eu lí um artigo no PHPBrasil(eu procurei no phpbrasil e não achei), sobre organização dos arquivos dentro do servidor. Eu até gostei das instruções que o cara dava, mas eu queria algo mais profissional, que eu não precisaria mudar depois.

Bendito foi o dia em que eu comecei a procurar sobre isso, logo encontrei os Padrões de Codificação do Framework Zend, que foi o divisor de águas para saber o que era certo e errado em identação e práticas de melhoria de visibilidade do código. Quando descobri que era, também, o mesmo padrão usado pelo PEAR fiquei mais empolgado ainda e até hoje, claro, uso. Só tem uma coisa que eu não gosto de fazer. Documentar.

Documentar é chato, é um processo altamente nostálgico que seu eu pudesse, passaria esse serviço para alguém. Maldito foi o *&^%$ que criou o PHPDOC.

Par ou Impar no php com melhor perfomance

O que mais procuramos hoje em dia é a agilidade. Vivemos tentando economizar segundos em tudo, e por que não economizar tempo também em nossas aplicações? Geralmente quando você quer saber se um número é par ou impar, faz-se o seguinte:

< ?php
$s = 5;
echo ($s % 2) ? 'impar' : 'par'; #Se tiver resto é impar, caso contrário, par.
?>

Só que esse código é lento, e temos uma forma bem mais rápida de obter tal resultado, usando os operadores bit-a-bit!

< ?php
$s = 5;
echo ($s & 1) ? 'impar' : 'par';
?>

Vamos explicar o código: O operador “&” ativa os bits que estiverem ativos nos dois números. Quando você coloca o operador “&” entre os dois para efetuar a expressão, ele os avalia como binários, assim sendo:

5 = 101
1 = 001

Resultará em

1 – 001 # Sendo o último algarismo dos dois números o bit ativo, então ele é ativado.

Assim sendo, na avaliação ternária anterior, a expressão retornará TRUE, ou seja, o retorno será impar.

O demoniaco e eterno register_globals

A diretiva register_globals está desativada desde os primórdios do php( 4.2.0), e ainda tem gente que vive batendo na mesma tecla dizendo para deixar ela desativada e bla bla bla. Sinceramente, já é bobagem ficar falando disso, register_globals anda dando posts e mais posts em blogs, fórum, e em grande maioria das mídias em que recorremos para estudos.
Só que, sinceramente, encheu o saco. Eu comecei a programar php em 2002, não lembro se foi antes ou depois da versão 4.2.0 sair( 22 de abril de 2002), mas nunca fiquei sabendo de tal recurso. Não sei se foi por que na época dos meus estudos me orientava por fóruns de discussão, que geralmente tem um povo mais cabeça que logo lhe afasta das coisas ruins do mundo. Não lembro também, de ao abrir alguns códigos fonte, encontrar alguma linha de código que usasse tal recurso, estava tudo lá $_POST, $_GET… Bonitinho… Redondo!

Agora com o lançamento da versão 6, onde toda essa festa vai acabar, nada de register_globals, nada de magic_quotes( cara, se você usa isso, deveria se matar), quero ver quais sites vão realmente parar de funcionar, se é que algum vai parar.

O que mais me espanta com esta evolução magnífica da linguagem é que tem gente reclamando disso. Vejo em milhares de sites pessoas falando que o php era uma linguagem fraca, que não tem tipagem, que não tem isso, que não tem aquilo, e quando finalmente a linguagem atinge um nível elevado de performance o povo reclama.

Ah! Quer saber?! Nessas horas eu recorro a Darwin, e a teoria da seleção natural, onde só os que se adaptam sobrevivem.