quarta-feira, 30 de abril de 2008

Economizando nos caracteres

Cada vez mais me convenço de que a programação é uma arte! E como cada artista tem seu próprio estilo, cara programador é capaz de desenvolver seu próprio método de organizar seu código fonte.

É muito comum em alguns sistemas, dependendo do estudo de caso, testar a existência de uma determinada variável antes de exibí-la na tela. E cada programador tem sua forma favorita de fazer isso em PHP. Seja com if em sintaxe clássica:

if(isset($menu)){
    print($menu);
}

Ou uma forma mais resumida, em casos simples:

if(isset($menu)) print($menu);

Outro método muito utilizado utilizado é o if ternário:

echo isset($menu) ? $menu : '';

Hoje pela manhã, recebemos no grupo de discussão sobre o CodeIgniter, uma sugestão do nosso amigo Edinho era basicamente substituir esta sequência de aninhamentos por um código simples, de apenas uma linha:

isset($menu) AND print($menu);

Em teoria, o PHP só executa o segunto teste (após o AND) se o primeiro for verdadeiro. Ou seja, a variável $menu só será exibida se o valor retornado por isset() for true, caso contrário o print() nem será executado.

Um outro exemplo:

$a=1;
true OR $a=2;
echo $a; //imprimirá 1

O resultado de $a será 1, já que a primeira condição é verdadeira. Caso fosse falsa, o código após o operador OR seria executado, alterando assim o valor de $a para 2.

Um terceiro caso:

!empty($valor) OR $valor=3;

Em palavras, a variável $valor não pode ser vazia 'ou' será atribuido 3 a ele.

Esse método de programação é muito utilizado em Ruby, e também incentivado no framework Kohana. Mas o pessoal do Zend Framework pregam um estilo mais tradicional de programação, onde são utilizados <?php echo $var; ?> em vez do simpático <?= $var; ?>.

Talvez esse possa não ser o mais eficaz dos métodos; talvez você prefira utilizar métodos de verificação mais simples de ler; mas em uma coisa temos que concordar: programadores são verdadeiros artistas! ;-)

quinta-feira, 10 de abril de 2008

Ignição: Codificar!


Há algum tempo eu estou me deliciando com as facilidades oferecidas pelos frameworks. Comecei a estudar PHP desde 2004, mas comecei a me aprofundar mais apenas em 2005 com o lançamento do carro-chefe dos meus projetos para web. Desde então eu venho estudando vários métodos, e há pouco mais de um ano conheci as facilidades que o framework oferece. Já passei pelo CakePHP, Zend Framework, e finalmente parei no Code Igniter.

O Code Igniter é uma verdadeira mão na roda para aqueles que não gostam de perder tempo "reinventando a roda". Trata-se de um framework que trabalha com conceitos Model-View-C ontroller (MVC).

Model-view-controller (MVC) é um padrão de arquitetura de software. Isso significa que ele separa o processamento dos dados da aplicação/website do layout. Desta forma, alterações feitas no layout não afetam a manipulação dos dados, e estes poderão ser reorganizados sem alterar o layout.

Em resumo, para se ter uma simples página que mostre os registros guardados numa tabela mySQL, vc precisaria de três arquivos, que trabalhando em conjunto, resultariam na saída para o usuário.

Talvez possa parecer um tanto assustador no inicio, como foi para mim, mas logo esse conceito de programação MVC é digerido e tudo se torna muito claro.

O CodeIgniter é um framework que vale a pena ser estudado. Diferente de outros frameworks, ele é capaz de facilitar a vida do programador, sem forçá-lo a aprender e seguir novas regras de programação (caso muito comum em muitos frameworks existentes).

Para ajudar:

Manual do CodeIgniter (em Português)
Página do CodeIgniter em Português
Página oficial do CodeIgniter (em Inglês)
Assinar a lista de discussão do CodeIgniter (Português)