Frix – Framework em PHP

Coloquei no meu Github o Frix, um framework em PHP baseado no Django (em Python).

Sempre vi um pouco de dificuldade em vender projetos com Django, os clientes costumam ter uma hospedagem que não suporta Python e oferecem resistência em trocar, ou têm receio de investir em uma solução que usa uma linguagem “exótica”. Pensando nisso, há algum tempo atrás desenvolvi o Frix, tentando aplicar algumas boas idéias do Django no PHP.

O projeto foi pouco utilizado e ficou encostado por muito tempo, mas como acredito que existem coisas que podem ser aproveitadas, resolvi liberar o código antes que caísse no meu próprio esquecimento.

Algumas das principais features:

  • Admin (scaffolding): criar, listar, editar e remover objetos:
    • suporte a hierarquia (árvores);
    • ordenação manual;
    • edição de objetos relacionados (inline);
  • Mapeador objeto-relacional: modelos de dados, abstração de consultas:
    • com suporte a MySQL;
  • Roteador de URLs com expressões regulares;
  • Sistema de templates em PHP puro:
    • suporte a herança e blocos;
    • aviso: a performance deixa a desejar;
  • Tratamento de Erros;

Para testar:

  1. clonar o projeto:
  2. git clone git://github.com/ricobl/frix.git
  3. criar o arquivo index.php:
  4. <?
    // Replace the path according to your setup
    require_once('path/to/frix/main.php');
    Frix::start();
    ?>
  5. criar o arquivo config.php:
  6. <?
    $config['DB_URL'] = 'mysql://user:pass@localhost/database';
    ?>
  7. criar o banco de dados no mysql, usando os SQLs das apps para criar as tabelas necessárias.

De qualquer forma, não pretendo manter o projeto, faz algum tempo que não trabalho com PHP e já não o acho mais tão divertido. Um dos motivos que me fez deixá-lo de lado foi a fraca orientação à objetos e dificuldade de instrospecção do PHP.

Gostaria de ouvir as opiniões sobre o framework e mais ainda se alguém achar algum uso para ele ou algum de seus módulos.

Misterape – Portal de Games

Desenvolver um portal com a previsão de um alto número de acessos não é uma tarefa fácil.

Antes de trabalhar para o Misterape já havia participado do projeto de vários websites, mas a grande maioria era de sites institucionais sem um grande volume de acesso ou ferramentas muito complexas.

Os projetos tinham curta duração, um website era criado, publicado e encerrado. Por isso a proposta do Misterape me pareceu interessante, eu teria a oportunidade de trabalhar em um projeto grande e em constante evolução.

Com isso tive que fazer algumas escolhas com muita cautela, precisava de uma base flexível o bastante para me dar agilidade no desenvolvimento e manutenção e que suportasse um grande volume de usuários.

Até então a minha maior experiência era com PHP. Eu mesmo havia desenvolvido uma biblioteca de ferramentas mas sentia que precisava de mais flexibilidade.

Fiz uma série de pesquisas, conversei com pessoas e acabei encontrando o Django, um framework para desenvolvimento rápido para a web, desenvolvido em Python.

Já havia tido algumas experiências com Python e gostei muito. O código é extremamente limpo e a orientação a objetos é muito forte, algo que é muito precário no PHP até hoje.

Com a escolha do Django já era possível dar início ao projeto. Foi um começo difícil, muitas dúvidas, algumas mudanças de rumo até o lançamento de uma primeira versão.

Por ser um portal de informação, um dos principais módulos foi o sistema de notícias. Bastante flexível e reutilizável.

Um dos maiores desafios ao se desenvolver um grande portal é a estruturação HTML / CSS das páginas. É preciso muito bom senso para chegar num equilíbrio entre o reaproveitamento de código e a customização de áreas específicas.

Foi um projeto muito interessante para se trabalhar, pude aprender muito sobre Django, HTML, CSS, Javascript e performance de servidores.

Para saber mais, visite o portal: http://misterape.pop.com.br/