Faltam apenas 3 dias

Respect: um microframework de respeito!

PorAlexandre Gaigalas em

Era difícil imaginar, lá em 2010, que um modesto projeto PHP brasileiro no GitHub, sem nenhuma empresa por trás e sem nenhum programador dedicado 100% para desenvolvê-lo, ganharia milhares de usuários e dezenas de contribuidores de diversos países.

O nome Respect veio de uma das preocupações iniciais do projeto: não apenas respeitar standards e patterns mas tornar o uso deles uma experiência agradável, e não um inferno particular.

respect

Sem dúvida o componente mais famoso do Respect é o Respect\Validation, feito para validar qualquer informação e, se houver uma falha, indicá-la de forma clara. O Exemplo 1 valida se uma string tem de 1 a 15 caracteres, somente letras, números e o caractere “_”. Esse é o formato de um nome de usuário do Twitter.

Exemplo 1: Validando um nome de usuário do Twitter

<?php
use Respect\Validation\Rules;
$usernameValido = new Rules\AllOf(,
  new Rules\String
  new Rules\Alnum("_"),
  new Rules\Length(0, 15)
);
$usernameValido->validate('phprespect'); //true
$usernameValido->validate('Foo#bar'); //false

O Respect é conhecido tanto por sua flexibilidade quanto por sua elegância, e o mesmo validador de cima pode ser escrito como no Exemplo 2.

Exemplo 2: Validando um nome de usuário do Twitter usando a API fluida.

<?php
use Respect\Validation\Validator as v;
$usernameValido = v::string()->alnum("_")->length(0, 15);
$usernameValido->validate('phprespect'); //true
$usernameValido->validate('Foo#bar'); //false

Há mais do que o Validation pra usar. O Respect é uma sólida caixa de ferramentas para qualquer programador PHP. Existem ferramentas para manipular bancos de dados, validar vários tipos de informações diferentes, configurar componentes, criar APIs e páginas, testar e automatizar aplicações. Muitas outras ferramentas do projeto estão em desenvolvimento.
Exemplo 3: Obtendo dados de tabelas de um banco de dados já existente usando o Respect\Relational.

<?php
use Respect\Relational\Mapper;
// Pode ser SQLite, MySQL, PostgreSQL ou qualquer driver PDO.
$banco    = new PDO('sqlite:db.sq3');
$mapeador = new Mapper($banco);
// Todos os comentários do artigo com id=5 em uma única SQL
$comentarios = $mapeador->comments->articles[5]->fetchAll();

O Respect veio para que você não tenha que escolher apenas um framework e seguir com ele pra sempre. Frameworks são como trilhos (alguns tem até esse nome!), e se você percebe que foi no sentido errado ou se o projeto muda de direção não há muito que fazer. O Respect é uma espécie de microframework e esquiva disso tornando decisões grandes em pequenas.

Você pode usar o Respect desde o começo de um projeto ou adotá-lo depois, sem gambiarras. Pode usar ele sozinho ou com outras ferramentas ou pode usar somente uma parte dele. Tudo é projetado para ser extremamente reutilizável e fácil de manter.
Exemplo 4: Criando uma rota pro caminho /users/algumacoisa na URI com Respect\Rest.

<?php
use Respect\Rest\Router;
$roteador = new Router;
$roteador->get('/users/*', function($screenName) {
   echo "User {$screenName}";
});

Para quem deseja utilizar o Respect com outra solução, existem pontos de integração com ferramentas bastante populares:

  • O Respect Bundle para o Laravel disponibiliza os componentes de validação (Respect\Validation), bancos de dados (Respect\Relational) e Configuração (Respect\Config).
  • O próprio componente Respect\Validation já possui integração nativa pra aproveitar validadores do Zend Framework 1 e 2 ou Symfony 2.
  • Há um Bundle para o Symfony2 em desenvolvimento que permitirá utilizar o mecanismo de Annotations com o Respect\Validation.

Qualidade também é algo que Respect também procura. Os componentes são todos testados desde o começo do desenvolvimento e miram em 100% de cobertura de código.

Se há uma coisa que o Respect mostra é que a comunidade brasileira está preparada para produzir software tão bem quanto qualquer outra comunidade estrangeira.

Conheça mais do Respect:

Conheça outros microframeworks similares ao Respect: http://microphp.org/

***

http://about.me/alganet

***

Este artigo foi publicado originalmente na Revista iMastersAcesse e leia todo o conteúdo.

Deixe um comentário! 7

7 comentários

Comentários

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentando como Anônimo

  1. Alexandre, aproveitando o artigo, há algo no Respect/Router que possa fazer alguém preferir usá-lo ao invés do Slim?

    Ah, e ótimo artigo. Meio suspeito o desenvolvedor falar de seu próprio projeto, mas é essa maravilha que você disse mesmo :D

  2. Cara ótimas sacadas mas como a o uso do namespace só 5.3.3 > ou 5.4 correto? bom igualmente muito bom ele, e espero que a galera contribua bastante e que as hospedagens avancem mais rapido.

  3. Boa, estou verificando alguns micro-frameworks para trabalhar com eles, se você Alexandre ou outro conseguir compara pontos favoráveis e negativos entre o Silex e o Respect já ficaria grato, já que tenho nada de experiência com frameworks.

    1. Ah sim, valeu. Pulei os links na primeira vez que li, quis nem saber, uahsua.
      E… no dia que postei o comentário notei que tinha errado o nome do módulo Rest. Que viajem :/

      Realmente, Respect\Rest se saiu muito bem. Restify se saiu melhor em performance ali mas a API dele é horrível comparada à sua solução. Vou usá-lo brevemente.

    2. Valeu Alexandre. Estarei conferindo o Respect, pois o pensamento é usar o micro em projetos menores e também vou começar a trabalhar com Laravel. Estou esperando um próximo hangout de vocês, é um ótimo trabalho, principalmente para quem estar no interior do Brasil.

leia mais
Este projeto é mantido e patrocinado pelas empresas: