O que tem de novo no PHP 5.3
Saiu no PHP-ZINE esses dias as Novidades do PHP 5.3, dentre as quais destaco, Namespaces, __callStatic e MySQLnd, que promete uma melhoria no acesso aos dados.
Essas alterações vieram um pouco tarde - porém, antes tarde do que nunca :) -, principalmente namespaces, que para sistemas maiores ajuda e muito quem desenvolve. Já o método __callStatic e Static Calls, que é a possibilidade de chamar métodos estáticos através de variáveis - como pode ser feito com funções hoje - vem na onda do ActiveRecord, que está na "moda" nos últimos anos.
É bom ver o PHP evoluindo suas features, tomara que essa evolução não pare nessas funcionalidades, falta muita coisa ainda para o PHP voltar a impressionar tecnologicamente programadores mais "modernos".
- Publicado por Rafael Souza as 14:32
- 0 comentários publicados
- Tags: php, programação, namespace, __callStatic
Querendo ser certo onde tudo (ou quase) é errado.
Desde que voltei a programar em PHP no final de 2006 comecei a tentar usar boa práticas no desenvolvimento dos projetos que trabalhei, uma dessas práticas é o uso mais radical do tratamento de erros do PHP, abortando o script na ocorrência de qualquer tipo de erro, inclusive Strict Errors.
Mas isso (ainda?) não é uma realidade na comunidade PHP, muitas bibliotecas e frameworks não tem este tipo de tratamento (seja para manter a compatibilidade com versões antigas ou sei lá o que), como o PHPUnit por exemplo, o maior framework de testes para PHP não permite por exemplo que faça Mock de um método static somente por que ele constrói o método usando $this no código, com isso é gerado um erro:
Fatal error:</strong> Using $this when not in object context in ...
Quando tentei utilizar o SimpleTest no lugar do PHPUnit tive muitos problemas também, referentes a métodos static principalmente, pois eles eram chamados estáticamente, porém não eram definidos como static, o que gerava um erro do tipo E_NOTICE, tipo que também considero como grave, e sempre na ocorrência deles, aborto a execução do meu script.
Futuramente espero que essas bibliotecas e frameworks tratem isso como importante, ou que a comunidade PHP comece a considerar isso como um detalhe extremamente útil em seus projetos, pois conforme esta nota na documentação do PHP:
Note: Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.
Quem sai ganhando é o próprio desenvolvedor.
- Publicado por Rafael Souza as 17:55
- 0 comentários publicados
- Tags: phpunit, simpletest, php, programação
Começando com TDD
Estou utilizando testes unitário com PHP atualmente e estou impressionado com a visão geral do fluxo do código que esta técnica me dá, fica muito fácil descobrir onde estão as gambiarras que eu fui fazendo no meio do caminho, na correria. Claro que não estou aplicando a técnica da melhor maneira, pois estou colocando testes em códigos prontos - vai ver é por isso que alguns códigos não estão lá essas coisas :) - mas é melhor do que nada. Pretendo a partir de agora usar testes em tudo que desenvolvo, apesar de ser um pouco difícil adquirir este hábito, vale a pena.
Para os interessados recomendo o PHPUnit, ele está em um estágio muito bom, boa documentação e é de fácil aprendizado, tem integração com Selenium - meu próximo passo - e várias outras ferramentas necessárias para este tipo de abordagem.
- Publicado por Rafael Souza as 15:31
- 0 comentários publicados
- Tags: php, phpunit, testes unitários
