Slim, possivelmente o framework ideal para quem vem do Golang

Joubert RedRatJoubert RedRat
3 min read

Eu trabalho com programação PHP há pelo menos 13 anos, já usei o PHP puro, frameworks como CodeIgniter, Symfony, Laravel, Laminas/Zend, CakePHP, Yii, já fiz um framework próprio, o Fox, já usei e criei várias bibliotecas também. Enfim, vi muita coisa no mundo do PHP.

Porém, eu sentia a necessidade de ter experiência com uma segunda linguagem de programação e escolhi o Golang como expliquei aqui.

Mas, depois de um tempo, acabei tendo saudades do PHP e como ele evoluiu nestes 4 anos que estive no mundo Golang, decidi fazer uns projetos para me manter atualizado na linguagem, mas aí veio o desafio.

Como trazer a filosofia minimalista do Golang para PHP?

Uma das coisas que mais gosto no mundo do Golang é ter quase total controle sobre o código e queria ter o mesmo controle no PHP, então decidi pesquisar e estudar frameworks para este objetivo.

Slim Framework

Logo de início, escolhi o Slim primeiro para fazer os testes, até porque eu me lembrava bem dele quando também estudei o finado Silex no passado para uso de um micro framework.

Nos primeiros testes eu usei o Skeleton do Slim e vi que ele utiliza somentes bibliotecas realmente necessárias para o funcionamento mínimo, como o PHP-DI, Monolog e o próprio Slim e a lib PSR-7 do Slim, como pode ser visto aqui. Com isto eu tenho um container para injeção de dependências, log, rotas, handlers, middlewares e pronto, tudo que eu preciso! Para conferir o Skeleton do Slim, basta acessar este link.

Com isso, todo o resto fica por minha conta, seja arquitetura em camadas, interfaces, repository, use cases, etc. Isto torna até mais fácil ter uma estrutura para testes unitários. Isto torna o projeto muito mais enxuto.

Porque não Symfony?

Eu vi a evolução do Symfony desde a versão 1 e vi como ele evoluiu de um grande e inchado framework para um micro framework, com o suporte de vários componentes da própria Symfony que você pode instalar opcionalmente e isto é muito bom, pois permite que você escolha somente o que irá precisar.

Um exemplo disto era que lembro que antigamente a gente fazia APIs no Symfony, mas o Twig era instalado como dependência, mesmo sem a gente precisar dele.

Confesso que embora eu seja um grande fã boy do Symfony, eu ainda considero um pouco chatinho lidar com o Kernel e configurações dele, principalmente por ficar em arquivos separados, embora eu entendo que isso é por conta dos bundles, que é algo excelente no ecossistema do Symfony.

Mas, o Symfony seria minha segunda escolha, caso Slim não atendesse minhas expectativas.

Porque não Lumen?

Embora o Lumen faça menos "mágica" que o Laravel, ainda sim eu não tenho o controle que eu gostaria do código, além dele ter muitas, muitas, muitas dependências, como pode ser visto aqui.

Conclusão

Por fim, minha escolha pelo Slim foi por conta da simplicidade e facilidade de implementação do seu código, deixando para ele algumas tarefas como injeção de dependências, rotas e middlewares, enquanto você fica com o resto, ao estilo "Do It Yourself".

Então é isto, até a próxima!

0
Subscribe to my newsletter

Read articles from Joubert RedRat directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Joubert RedRat
Joubert RedRat

I am eternal trainee of life that works over 10 years ago in technology area, with focus in engineering and architecture of software and with specialization in financial systems and DevOps, moreover speaker around the world, always receiving and sharing the knowledge with wisdom.