Mostrando postagens com marcador slimframework. Mostrar todas as postagens
Mostrando postagens com marcador slimframework. Mostrar todas as postagens

terça-feira, 27 de junho de 2017

Criando cache para as rotas no slim

Sabe quando você esta desenvolvendo sua aplicação, e você percebe que uma determinada rota recebe um monte de requisições sempre com o mesmo parâmetro, aquele momento em que seu webservice recebe um monte de requisições pra retornar a lista de produtos da empresa, que praticamente nunca muda?

É nessas horas que você precisa pensar em cache ( tá o exemplo pode não ser dos melhores, mas você entendeu tenho certeza..rs).

Configurar cache no slim é muito fácil. nas configurações da aplicação, basta setar um nome válido na propriedade routerCacheFile. Da uma olhadinha abaixo como fica:


$config = [
    'settings' => [
        'addContentLengthHeader' => false,
        'displayErrorDetails' => true, // set to false in production
        'routerCacheFile' => __DIR__ . '/../routes.cache.php',
    ],
];
 
$app = new Slim\App($config);

É importante lembrar que todo este cache não tem nenhum controle hein, então pra renovar o cache o mesmo terá de ser apagado (obvio que você pode criar um mecanismo para isso né :)). No artigo que estou usando como base para transcrever este exemplo aqui, tem um exemplo que cria as rotas, e as armazena, com um pequeno teste de performance:


 [
        'addContentLengthHeader' => false,
        'displayErrorDetails' => true, // set to false in production
        'routerCacheFile' => __DIR__ . '/../routes.cache.php',
    ],
];
 
$app = new Slim\App($config);
 
for ($groupName = 1; $groupName <= 25; $groupName++) {
    $app->group("/$groupName", function() {
        for ($i = 1; $i <= 1000; $i++) {
            $this->get("/$i/{id:\d+}", App\Action::class);
            $this->post("/$i/{id:\d+}", App\Action::class);
            $this->put("/$i/{id:\d+}", App\Action::class);
            $this->delete("/$i/{id:\d+}", App\Action::class);
        }
    });
}
 
// Run!
$start = microtime(true);
$app->run();
$diff = microtime(true) - $start;
echo "\n" . sprintf("%0.03f", $diff * 1000);

O que ele esta fazendo, é criar as rotas dinamicamente. Faça um teste acesse uma rota 2 vezes, vai ser notávle o o ganho de performance. Depois venho escrever um artigo usando o http_cache no slim, mostrando como criar rotas com datas de validade :). POST original: https://akrabat.com/slims-route-cache-file/

sexta-feira, 18 de novembro de 2016

Phinx - Migration pra todo mundo (inclusive pra quem usa slim)





Quem me conhece sabe que eu não sou fan do Laravel, na verdade meu problema é ser fan do Slim, e acaba que eu prefiro buscar soluções pra implementar no slim as coisas legais que vejo em outros frameworks, e se tem uma coisa legal no Laravel são os migrations.


Migration é realmente um recurso muito útil, durante a evolução do projeto, e nessa vontade de usar no slim, acabei encontrando uma ferramenta, meio que por acaso, o  Phinx, que tem um rep no github (https://github.com/robmorgan/phinx).


Pra quem já usou no Laravel, é basicamente a mesma coisa, e pra quem nunca usou, recomendo fortemente que de uma olhadinha no manual, vai ver como  é simples e fácil de usar.



terça-feira, 10 de junho de 2014

O porque?


O Slim é um framework que tem como objetivo ajudar o desenvolvedor a criar de modo rápido aplicações web e apis.


Os Recursos do framework:
  • Um tratamento poderoso de rotas
    • Permite a utilização de métodos HTTP padrão (put, get, post e delete) e personalizados
    • Parâmetros de rota com wildcards e condicionais
    • Rotas com redirecionamento, parada, e passagem
    • Middleware para tratamento de rotas
  • Renderização de templates com views customizadas
  • Utilização de Flash messages
  • Cookie seguro com criptografia AES-256
  • Permite construção com cache HTTP
  • Registro de Logs com scripts personalizados
  • Tratamento de erros e depuração
  • Middleware e hooks
  • Configuração simples

A instalação é muito simples, você pode usar o composer, ou baixar o pacote do framework (ridiculamente pequeno) no site, veja aqui como instalar.

A partir do próximo post, vou fazer uma revisão sobre um aspecto muito importante para desenvolvedores web, e mostrando como tirar proveito com o o Slim, o Protocólo HTTP e seus métodos. Abraços.