Terceirizando sua aplicação

Preocupa-se com seu domínio e esqueça do restante.

Erandir Junior
php-brasil
3 min readMay 29, 2019

--

O propósito deste artigo é bem simples: fazer com que foquemos única e exclusivamente com nossas regras de negócio, deixando de lado coisas como: “Qual a melhor forma de me conectar com o banco de dados?” ou “Qual validação farei nos dados da requisição”. Em resumo, seria algo como: FOQUE NO SEU DOMÍNIO, USE COMPONENTES.

Inicialmente vamos entender o que é um componente

Componentes de Software é o termo utilizado para descrever o elemento de software que encapsula uma série de funcionalidades. Um componente é uma unidade independente, que pode ser utilizado com outros componentes para formar um sistema mais complexo.

Resumindo o que esse trecho da Wikipédia explica: um componente em um software nada mais é do que uma parte do código que recebe uma entrada e retorna uma resposta. Ele pode ser reutilizado em outros projetos e/ou componentes, e devido a isso, sua estrutura deve ser independente.

A importância do uso de componentes

Eu gosto de bibliotecas, eu acho muito interessante ter uma funcionalidade que pode ser utilizada em n projetos. Que me ajuda com coisas que vão das mais simples as mais complexas, e isso me permite focar em entregar o que o cliente quer ou acha que quer.

Sendo mais direto: se eu quero redimensionar uma imagem, eu não vou fazer um método ou uma classe só para fazer isso. Pelo simples fato de já ter bibliotecas que fazem isso para mim. Me preocuparei apenas no que eu vou fazer com essa imagem redimensionada, entendem?

Deixando de enrolação e avançando…

Depois de toda essas explicações, vamos ver algumas bibliotecas que podem ser úteis para nós. Fiz uma pequena lista que aborda desde validações a manipulação de banco de dados, entre outras coisas. Aproveitem.

Frameworks

Antes de começar com componentes individuais, quero falar sobre o maior benefício do uso de componentes: os frameworks.

Frameworks, nada mais são que um conjunto de componentes que se comunicam fornecendo ao desenvolvedor funcionalidades que ele supostamente implementaria na mão. Quem usa um no dia a dia, sabe o quanto é vantajoso sua utilização, o ganho em produtividade é absurdo.

Componentes individuais

  • Rotas
    * PlugRoute - é uma biblioteca para trabalhar com rotas. Simples, rápida e poderosa, essa biblioteca com certeza te ajudará;
    * AuraRouter - outra excelente alternativa para se trabalhar com rotas em PHP;
    * Vale a pena mencionar aqui o sistema de rotas do Symfony e do Laravel.
  • Banco de dados
    * Doctrine - é um excelente ORM, trabalha com o padrão data mapper. É o orm utilizado pelo Symfony e outros frameworks;
    * Eloquent - acredito que seja o principal rival do Doctrine, feito em cima do padrão active record, é o ORM padrão do Laravel.
  • E-mail
    * PHPMailer - excelente biblioteca para envio de e-mails, acredito que seja a biblioteca de e-mails mais utilizada, pelo menos fora de frameworks;
    * SwiftMailer - outra excelente ferramenta - caso não me falhe a memória - o Laravel utiliza ele como o enviador de e-mails padrão.
  • PDF
    * TCPDF - biblioteca para criar pdfs. Oferece a possibilidade de converter html para pdf além de outras coiasa;
    * FPDF - outra excelente biblioteca para criar pdf, é baseada na biblioteca Tcpdf;
    * MPDF - mais outra excelente biblioteca para criar pdf, também é baseada na biblioteca Tcpdf.
  • Validador
    * Laravel Validation - excelente biblioteca para validar dados, principalmente de dados vindo da requisição, é o componente padrão do Laravel.
  • Template
    * Twig - talvez a principal biblioteca para templates no PHP. Muito prática e poderosa. É o template padrão do Symfony;
    * Blade - tão bom quanto o twig, esse template engine é o padrão do framework Laravel.
  • Console
    * Console - ele é excelente se você estiver precisando criar comandos que sejam executados pelo terminal. Criado para o Symfony, e utilizado por outros frameworks, sua instalação e configuração são bem simples.
  • Geral
    * Laravel - um framework completo, tem tudo que você precisa e um pouco mais;
    * Symfony - outro excelente framework que dispensa apresentações, ótimo em tudo o que oferece.

Vimos aqui bastante componentes que podem ser utilizado tanto em frameworks como fora deles. A lista acima não mostra 0,1% dos componentes disponíveis para uso, aconselho que acessem o PACKAGIST e vejam as milhares de bibliotecas prontas para uso.

--

--