Diário da Migração: De PHP à Python (CodeIgniter à Django) - Dia 1

Olá, pessoal!

O pessoal que me acompanha pelo Twitter e que segue o blog já deve saber que sou um feliz usuário do CodeIgniter há mais de um ano. Este é um excelente framework para desenvolvimento WEB com PHP e me orgulho bastante de alguns resultados que temos alcançado com ele na CaSoft.



Mas nem tudo são flores no mundo PHP e quanto mais estudo outros linguagens, mais me vejo insatisfeito com alguns detalhes do PHP...

Alguns coisas tão bobas, alguns detalhes tão pequenos... Mas que me fazem ver com bons olhos as soluções que o pessoal do Python criou.

Um exemplo? Ok, vamos lá... Olhe as formas de ler um arquivo:

Em PHP:


// lê o conteúdo do arquivo para uma string
$filename = "/usr/local/qualquer.txt";
$handle = fopen ($filename, "r");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>


Em Python:


# lê o conteúdo do arquivo para uma lista:
arquivo = open("/usr/local/qualquer.txt", "r")
conteudo = arquivo.readlines()
arquivo.close()


Viu a diferença? É bem melhor usar o handler para manipular o arquivo usando métodos do objeto e não funções que recebem o handler como parâmetro. Agora um exemplo com strings:

Em PHP:


$texto = "Dinamite Pangalática";
echo str_replace("Pangalática", "Pangaláctica", $texto);
?>


Em Python:


texto = "Dinamite Pangalática"
print texto.replace("Pangalática", "Pangaláctica")


Com Python as strings são objetos, e estes objetos possuem métodos. Nada de usar várias funções e passar as strings como parâmetro.

Isso pode até parecer pouco, mas experimenta brincar com o curl... É um tal de passar handler para lá e para cá que é brincadeira...

Nem vou falar de Namespaces com barras invertidas...

Bem, antes de continuar eu quero deixar bem claro que eu gosto muito do PHP e vou continuar trabalhando com esta linguagem e também com o CodeIgniter. O que estou fazendo atualmente é a migração de um projeto apenas e, se der certo, farei mais alguns, mas é importante ressaltar que eu não estou desmerecendo o PHP nem querendo me livrar dele, apenas quero mais opções =)

Então vamos à migração!

Dia 1


O primeiro passo foi remover o core do CodeIgniter e iniciar o projeto Django. Aproveitei para mover arquivos de JavaScript, CSS e imagens para um diretório "media".

O segundo passo foi mapear o banco para o ORM do Django. Esse até que foi fácil, o projeto ainda é pequeno e os relacionamentos entre as tabelas os objetos é simples.

Ufa.. Este foi o primeiro dia... Noite... Pouco mais de uma hora de trabalho e ainda não migrei todos os modelos de dados...

Depois volto com mais atualizações sobre esta saga!

InFog

Evaldo Junior

Desenvolvedor web, palestrante, escritor e usuário e contribuidor do Software Livre.

comments powered by Disqus