Você está na página 1de 14

FRAMEWORKS PARA DESENVOLVIMENTO MVC -

PHP
Matheus F. Ferreira1, Vitor Hugo Luize2, João Pedro Porfirio1, Stevan M. Helpis3
1
Instituto Federal – Instituto Federal de Mato Grosso do Sul (IFMS)
Coxim – MS – Brazil
2
Departamento de Núcleo de Comunicação e Informação– Instituto Federal de Coxim
(IFMS)
Coxim, MS – Brazil.
MATHEUS FELIPE FERREIRA , VITOR HUGO RIBEIRO LUIZE ,
JOAO PEDRO PORFIRIO LUIZE MAFRA , STEVAN MENEGHELLO HELPIS

Abstract. In this article, we will discuss the main frameworks used in


developing web applications using PHP, with an emphasis on the MVC
(Model-View-Controller) architecture. We will analyze the advantages of using
frameworks, their main characteristics and highlight two of the frameworks:
Yii and Laravel..
Resumo. Neste artigo, discutiremos os principais frameworks usados no
desenvolvimento de aplicativos da web usando PHP, com ênfase na arquitetura
MVC (Model-View-Controller). Analisaremos as vantagens de usar
frameworks, suas principais características e destacamos dois dos frameworks:
Yii e Laravel.

1. O Que é um Framework
Um framework é uma estrutura ou conjunto de ferramentas, bibliotecas,
diretrizes e componentes de software que facilitam o desenvolvimento de aplicativos ou
sistemas de software. Ele fornece uma base comum e reutilizável que ajuda os
desenvolvedores a economizar tempo e esforço, fornecendo soluções pré-construídas
para tarefas comuns, como gerenciamento de dados, interface do usuário, segurança e
muito mais.
Os frameworks são projetados para serem flexíveis e extensíveis, permitindo que
os desenvolvedores personalizem e ampliem suas funcionalidades de acordo com as
necessidades específicas de seus projetos. Eles são frequentemente usados em
desenvolvimento de software para garantir consistência, eficiência e qualidade, além de
acelerar o processo de criação de aplicativos. Frameworks são comuns em uma
variedade de linguagens de programação e domínios, incluindo desenvolvimento web,
desenvolvimento de aplicativos móveis, desenvolvimento de jogos, entre outros.
O desenvolvimento de aplicativos da web em PHP tem evoluído
significativamente nos últimos anos, graças ao uso de frameworks que tornam o
processo mais eficiente, organizado e escalável. Neste artigo, exploraremos o papel
fundamental da arquitetura MVC e apresentaremos dois dos frameworks mais notáveis
em PHP.

1.1. Framework MVC


Um framework MVC (Model-View-Controller) é um tipo específico de
framework projetado para ajudar os desenvolvedores a criar aplicativos seguindo o
padrão MVC. O MVC é um padrão de arquitetura que separa uma aplicação em três
componentes principais: Modelo, Visão e Controlador, como mencionado
anteriormente.
Um framework MVC fornece estruturas e convenções para implementar o
padrão MVC em uma aplicação. Aqui está uma breve descrição de cada componente em
um framework MVC:
Modelo (Model): O Modelo é responsável por representar os dados e a lógica
de negócios da aplicação. O framework MVC geralmente oferece ferramentas para a
definição de modelos de dados, interações com bancos de dados e validação de dados.
Visão (View): A Visão é responsável pela apresentação dos dados aos usuários.
Em um framework MVC, é comum ter mecanismos para a criação de interfaces do
usuário, templates, e renderização de conteúdo.
Controlador (Controller): O Controlador atua como intermediário entre o
Modelo e a Visão, processando as solicitações do usuário, tomando decisões com base
nas ações do usuário e atualizando o Modelo e a Visão conforme necessário.
Frameworks MVC geralmente fornecem mecanismos para definir rotas, gerenciar a
lógica do Controlador e lidar com a interação do usuário.
Exemplos de frameworks MVC incluem o Ruby on Rails, que é um framework
web baseado em Ruby, o Django, que é um framework web baseado em Python, e o
Laravel, que é um framework web baseado em PHP. Esses frameworks permitem que os
desenvolvedores construam aplicativos web de forma estruturada, seguindo o padrão
MVC, o que facilita a manutenção e escalabilidade dos projetos.

2. O que é MVC
O Modelo-Visão-Controlador (MVC) é um padrão de arquitetura de software
amplamente utilizado na construção de aplicativos, especialmente em desenvolvimento
web. Ele foi projetado para separar a lógica de processos, a interface do usuário e o
controle de forma a tornar o desenvolvimento de software mais organizado, escalável e
manutenível. O MVC divide uma aplicação em três componentes principais:
1. Modelo (Model): O Modelo representa a camada de dados e a lógica de
negócios da aplicação. Ele é responsável por armazenar e gerenciar os dados, bem como
por definir as regras de negócios. Isso inclui a interação com bancos de dados, validação
de dados, cálculos e qualquer outra operação relacionada aos dados do aplicativo.
2. Visão (View): A Visão é a camada de apresentação da aplicação. Ela lida com
a representação visual dos dados e interage com o usuário. A principal função da Visão
é exibir informações para o usuário de uma forma que seja compreensível e atraente. As
ações do usuário, como cliques em botões, são encaminhadas ao Controlador para
processamento.
3. Controlador (Controller): O Controlador atua como um intermediário entre
o Modelo e a Visão. Ele recebe as solicitações do usuário a partir da Visão e coordena as
ações necessárias no Modelo. O Controlador é responsável por direcionar fluxo de
dados, atualizar o Modelo e atualizar a Visão conforme necessário. Ele contém a lógica
que decide como responder a ações do usuário e como os dados devem ser atualizados.
O MVC é amplamente usado em frameworks de desenvolvimento web, como
Ruby on Rails, Django (Python), Angular e Spring (Java), entre outros. No entanto,
embora o MVC seja um padrão bem estabelecido, é importante observar que existem
variações e adaptações do modelo, como o MVVM (Model-View-ViewModel) e o MVP
(Model-View-Presenter), que se adequam a diferentes necessidades e tecnologias.
Em resumo, o MVC é uma abordagem arquitetônica que promove a separação
clara das preocupações em uma aplicação, tornando o desenvolvimento de software
mais eficiente e gerenciável, especialmente em aplicações complexas e em equipe.

2.1. Pontos positivos


1. Separação de Responsabilidade: O MVC promove uma clara divisão de tarefas
entre as diferentes partes da aplicação, o que facilita a manutenção e o
desenvolvimento de novos recursos.
2. Reutilização de Código: Cada componente do MVC pode ser desenvolvido e
testado separadamente, o que promove a reutilização de código e a escalabilidade do
projeto.
3. Facilita o Desenvolvimento em Equipe: Com a clara definição de
responsabilidades, diferentes membros da equipe podem trabalhar em partes distintas
da aplicação simultaneamente.
4. Flexibilidade e Escalabilidade: O padrão MVC permite a adaptação a mudanças
nos requisitos ou a expansão da aplicação sem a necessidade de grandes
reestruturações.

2.2. Pontos Negativos


Embora o Modelo-Visão-Controlador (MVC) seja um padrão amplamente utilizado e
benéfico em muitos cenários, também possui algumas limitações e desafios. Aqui
estão alguns pontos negativos associados ao uso do MVC:
1. Complexidade inicial: Implementar o padrão MVC pode adicionar
complexidade inicial a um projeto, especialmente para desenvolvedores
inexperientes. A divisão das responsabilidades entre o Modelo, a Visão e o
Controlador requer um planejamento cuidadoso e pode ser difícil de entender no
início.
2. Aumento do número de arquivos: A separação das camadas do MVC pode
levar a um grande número de arquivos e diretórios no projeto, o que pode tornar
a estrutura do código mais difícil de gerenciar.
3. Potencial para acoplamento excessivo: Se não for implementado corretamente,
o MVC pode levar a um alto grau de acoplamento entre o Controlador e a Visão,
o que pode dificultar a reutilização e a manutenção de componentes
separadamente.
4. Possível sobrecarga de código: Em alguns casos, o padrão MVC pode resultar
em uma quantidade considerável de código redundante, especialmente na
camada do Controlador, onde as rotas e a lógica de manipulação de solicitações
podem se tornar extensas.
5. Desempenho: Em sistemas muito complexos, o MVC pode introduzir alguma
sobrecarga devido à necessidade de atualizações frequentes da Visão, mesmo
quando os dados no Modelo não mudaram. Isso pode afetar o desempenho em
aplicativos de alta carga.
6. Aprendizado contínuo: A implementação do MVC pode exigir que os
desenvolvedores aprendam e sigam boas práticas específicas para manter a
arquitetura organizada. Isso pode ser um desafio para equipes inexperientes.
7. Tendência a inchaço do Controlador: Em muitos casos, o Controlador pode se
tornar uma classe ou componente "gorduroso" que lida com várias
responsabilidades, tornando-o difícil de manter e estender. Isso pode ser
especialmente problemático em aplicativos grandes.

É importante notar que muitos dos desafios associados ao MVC podem ser
mitigados com uma implementação cuidadosa e o uso de melhores práticas de
desenvolvimento. Além disso, em muitos cenários, outras arquiteturas, como o
MVVM (Model-View-ViewModel) e o MVP (Model-View-Presenter), foram
desenvolvidas como alternativas ao MVC e podem ser mais adequadas para certos
tipos de aplicativos. A escolha da arquitetura depende das necessidades específicas
de um projeto e das preferências da equipe de desenvolvimento.

4. Framework YII
O framework Yii é um framework de desenvolvimento web de código aberto
escrito em PHP, que segue o padrão Model-View-Controller (MVC). Abaixo, um
resumo da estrutura e do uso do framework Yii:
Estrutura do Framework Yii:
1. Modelo (Model): A camada de Modelo no Yii é responsável por representar
os dados da aplicação e inclui a lógica de negócios. Os modelos são frequentemente
vinculados a tabelas de banco de dados, facilitando a interação com sistemas de
armazenamento de dados. O Yii oferece suporte a várias classes e recursos para
trabalhar com bancos de dados e gerenciar os modelos.
2. Visão (View): A camada de Visão trata da apresentação de dados aos
usuários. No Yii, as visões são frequentemente criadas usando arquivos de modelo e
podem ser personalizadas para gerar saída em vários formatos, como HTML, JSON,
XML, etc.
3.Controlador (Controller): O Controlador é responsável por receber as
solicitações dos usuários, processá-las e tomar as decisões apropriadas. Ele atua como
um intermediário entre as camadas de Modelo e Visão. O Yii permite que os
desenvolvedores definam ações de controle e rotas para lidar com as requisições dos
usuários.
4.Componentes e Widgets: O Yii fornece uma ampla gama de componentes e
widgets que podem ser facilmente incorporados nas aplicações para lidar com tarefas
comuns, como autenticação, cache, autenticação, validação de formulários e muito
mais. Esses componentes facilitam a adição de funcionalidades específicas em suas
aplicações.
5.Migrações: O Yii inclui uma ferramenta de migração que permite gerenciar as
mudanças na estrutura do banco de dados ao longo do tempo. Isso é especialmente útil
quando se trabalha em equipe e é necessário manter o esquema do banco de dados
atualizado.

Uso do Framework Yi:


1. Configuração: O Yii possui um sistema de configuração flexível que permite
definir parâmetros de aplicação, como configurações de banco de dados e componentes
personalizados, de forma centralizada.
2. Geração de Código: O Yii inclui geradores de código que podem acelerar o
desenvolvimento, como geradores de modelos e controladores. Eles criam
automaticamente código de estrutura com base no banco de dados existente,
economizando tempo.
3.Gerenciamento de Banco de Dados: O Yii facilita a interação com bancos de
dados por meio de seu mecanismo Active Record, que permite manipular registros de
banco de dados como objetos.
4.Segurança: O Yii oferece recursos integrados de segurança, incluindo
proteção contra ataques comuns, como injeção SQL e cross-site scripting (XSS).
5. Extensibilidade: É fácil estender o Yii, criando componentes e widgets
personalizados, tornando-o altamente flexível para atender a diferentes necessidades de
desenvolvimento.
6. Suporte a Ajax: O Yii oferece suporte integrado para o uso de tecnologia
Ajax, simplificando a criação de aplicativos web interativos.
7. Internacionalização e Localização: O Yii facilita a internacionalização
(i18n) e a localização (l10n) de aplicativos para atender a diferentes mercados e
idiomas.
O Yii é uma escolha popular para o desenvolvimento web em PHP devido à sua
eficiência, flexibilidade e extensibilidade. Ele é usado para criar uma ampla variedade
de aplicativos web, desde pequenos sites até aplicações empresariais complexas, e é
conhecido por seu desempenho sólido e sua comunidade de desenvolvedores ativos.
4.1. Exemplos de aplicações do YII
Configuração:
Primeiro, você precisa configurar a aplicação Yii. A configuração pode ser feita
no
“arquivo config/main.php”:

Modelo (Model):
Crie um modelo para representar as tarefas. Suponhamos que você tenha um
banco de dados com uma tabela chamada “tasks”:

Visão (View):
A visão é responsável por exibir as tarefas na página. Crie uma visão chamada
“task/index.php”:

Controlador (Controller):
O controlador responde às solicitações do usuário e lida com a lógica. Crie um
controlador chamado “TaskController.php”:

Rotas (Routes):
Em seguida, defina uma rota para acessar a página de lista de tarefas. Isso pode ser feito
em “config/main.php”:

Agora, quando você acessar /task, o controlador TaskController será acionado,


buscará as tarefas no modelo e as exibirá na visão.
Este é um exemplo simples de como o Yii funciona para criar uma lista de
tarefas. Lembre-se de que o Yii oferece muito mais funcionalidades, como validação de
formulários, autenticação, controle de acesso, e muito mais, tornando-o uma ferramenta
poderosa para o desenvolvimento web em PHP.
5. Framework LARAVEL

O Laravel é um framework PHP de código aberto amplamente utilizado para o


desenvolvimento web. Ele foi projetado para simplificar e acelerar o processo de
criação de aplicativos web, proporcionando uma estrutura organizada e muitos recursos
úteis. Abaixo, um resumo da estrutura e do uso do framework Laravel:

Estrutura do Framework Laravel:

1.Arquitetura MVC (Model-View-Controller): O Laravel adota o padrão de


arquitetura MVC para separar a lógica de negócios, a apresentação e o controle. Isso
facilita a organização do código e a manutenção.

2.Modelo (Model): O componente Modelo no Laravel é responsável por


interagir com o banco de dados. Ele fornece uma maneira elegante de definir e
manipular os dados, bem como de realizar operações de consulta no banco de dados.

3.Visão (View): A camada de Visão trata da apresentação de dados aos usuários.


No Laravel, as visões são geralmente criadas usando o motor de templates Blade, que
oferece recursos poderosos para criar interfaces de usuário dinâmicas.

4.Controlador (Controller): O Controlador é responsável por receber as


solicitações dos usuários, processá-las e atualizar o Modelo e a Visão conforme
necessário. Os controladores facilitam a organização da lógica da aplicação.

5.Roteamento (Routing): O Laravel inclui um sistema de roteamento flexível


que permite definir rotas para suas ações de controle, tornando mais fácil o mapeamento
de URLs para funções do controlador.

6.Middleware: O middleware é um recurso poderoso do Laravel que permite


adicionar camadas de processamento entre as solicitações do cliente e a execução das
ações do controlador. Isso é útil para tarefas como autenticação, validação de
formulários e muito mais.

7.Eloquent ORM: O Laravel fornece o Eloquent ORM, que simplifica o acesso


a bancos de dados e as operações de consulta, permitindo que os desenvolvedores
interajam com o banco de dados como se estivessem trabalhando com objetos.

Uso do Framework Laravel:

1.Instalação: Use o Composer para instalar o Laravel e suas dependências. Isso


pode ser feito com o comando composer create-project --prefer-dist laravel/laravel
nome-do-seu-projeto.

2.Configuração: Configure o arquivo .env para definir as variáveis de ambiente,


como as configurações de banco de dados. Isso mantém informações sensíveis fora do
código-fonte.
3.Criação de Rotas: Defina rotas em routes/web.php ou routes/api.php para
mapear URLs para controladores e métodos.

4.Criação de Controladores: Crie controladores usando o comando Artisan do


Laravel (php artisan make:controller NomeDoControlador). Adicione lógica para
manipular solicitações HTTP nos métodos dos controladores.

5.Modelos e Banco de Dados: Crie modelos Eloquent para interagir com o


banco de dados. Defina relacionamentos e consultas usando o Eloquent.

6.Visões: Use o sistema de templates Blade para criar visões dinâmicas. Isso
permite que você crie facilmente interfaces de usuário comuns e reutilizáveis.

7.Autenticação e Middleware: O Laravel oferece middleware e recursos


integrados de autenticação para simplificar a implementação de autenticação de usuários
e autorização.

8.Desenvolvimento Rápido: O Laravel inclui muitas ferramentas para tarefas


comuns, como validação de formulários, envio de e-mails, manipulação de arquivos e
muito mais, o que acelera o desenvolvimento.

9.Comunidade Ativa: O Laravel possui uma comunidade de desenvolvedores


ativa, o que significa que você pode encontrar muitos recursos, bibliotecas e pacotes de
terceiros para aprimorar suas aplicações.

O Laravel é uma escolha popular para desenvolvedores devido à sua elegância,


facilidade de uso e eficiência no desenvolvimento web. É adequado para uma ampla
variedade de projetos, desde pequenos sites até aplicativos web empresariais
complexos.

5.1. Exemplos de aplicações do LARAVEL

Criação de uma Rota:

Definir uma rota no arquivo routes/web.php que mapeia uma URL para um
controlador:

Criação de um Controlador:

Criar um controlador com o Artisan, o gerador de código do Laravel:

Isso cria o arquivo TaskController.php. Em seguida, você pode definir métodos


no controlador para lidar com solicitações:
Modelo Eloquent:

Definir um modelo Eloquent para interagir com o banco de dados. O Laravel irá
gerar automaticamente um modelo vazio para você:

Em seguida, defina a tabela e as relações no modelo:

Criação de Visão (View):

Crie uma visão em Blade para exibir as tarefas. Por exemplo,


resources/views/tasks/index.blade.php:

Middleware:

Use middleware para autenticação em rotas específicas. Por exemplo, proteja


uma rota para que apenas usuários autenticados acessem:

Execução de Migrações:

Crie migrações para definir a estrutura do banco de dados e, em seguida, execute


as migrações:

Isso criará um arquivo de migração em database/migrations. Defina a estrutura


da tabela no arquivo de migração e execute a migração:
Esses são exemplos básicos de como criar rotas, controladores, modelos, visões e usar
middleware no Laravel. O framework Laravel oferece uma ampla gama de recursos
adicionais, como autenticação, validação de formulários, manipulação de arquivos,

agendamento de tarefas e muito mais, que podem ser usados para criar aplicativos web
robustos e escaláveis.

Referências
https://laravel.com/docs/10.x
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwiiiJP92qGCAxU6K7kGHWk6BJYQFnoECAcQAQ&url=https%3A
%2F%2Flaravel.com%2F&usg=AOvVaw2N971PScvycqJzGh3734ZD&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwiiiJP92qGCAxU6K7kGHWk6BJYQFnoECBcQAw&url=https%3A
%2F%2Ftecnoblog.net%2Fresponde%2Fo-que-e-laravel-guia-para-iniciantes%2F%23
%3A~%3Atext%3DLaravel%2520%25C3%25A9%2520um%2520framework%2520P
HP%2520gratuito%2520e%2520de%2520c%25C3%25B3digo%2520aberto%2Cagiliza
m%2520o%2520processo%2520de%2520desenvolvimento.&usg=AOvVaw3uNvnHFk
HOrdpu4C8_2abe&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwjqnpGl26GCAxVFO7kGHbcyBwAQFnoECAYQAw&url=https%3
A%2F%2Fcynoteck.com%2Fpt%2Fblog-post%2Finstalling-laravel-8-on-windows-10-x
ampp%2F&usg=AOvVaw3L2vtactNCTzUxNd6_b97s&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwjT8M7S26GCAxWdHbkGHSh9DD0QFnoECA8QAQ&url=https%
3A%2F%2Fwww.yiiframework.com%2Fdoc%2Fguide%2F1.1%2Fpt%2Fquickstart.wh
at-is-yii&usg=AOvVaw1R-1Sgxdv2hSBuvAIT0FWg&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwjT8M7S26GCAxWdHbkGHSh9DD0QFnoECAsQAw&url=https%
3A%2F%2Fportalsenac.am.senac.br%2Fsiteadmin%2Fweb%2Fuploads%2Fpsg%2Ferr
atas%2Fyii2-v7.pdf&usg=AOvVaw3-BsO_GeOwH5VtcMdoEpmk&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwip8YvX26GCAxVRCrkGHegwB9oQFnoECAQQAw&url=https%3
A%2F%2Fwww.locaweb.com.br%2Fblog%2Ftemas%2Fcodigo-aberto%2Flaravel-fram
ework-php%2F%23%3A~%3Atext%3DVoltamos%2520a%2520falar%2520de%2520u
ma%2Ca%2520entender%2520um%2520pouco%2520mais.&usg=AOvVaw0oUv4Os6
AwFqP5jPJa5W_O&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwi_qrrj26GCAxWcG7kGHbEaBEMQFnoECAsQAQ&url=https%3A
%2F%2Fbalta.io%2Fblog%2Fo-que-e-um-framework&usg=AOvVaw00h1aa2qZXLZg
bvxp8TLRx&opi=89978449

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwi_qrrj26GCAxWcG7kGHbEaBEMQFnoECAwQAw&url=https%3
A%2F%2Fkenzie.com.br%2Fblog%2Fframework%2F%23%3A~%3Atext%3DUm%25
20framework%2520%25C3%25A9%2520uma%2520estrutura%2Cdefinido%252C%25
20alterando%2520apenas%2520demais%2520particularidades.&usg=AOvVaw0o-zA2v
HjdH9VnfBBqG0fK&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwihi47z26GCAxWYALkGHaQGDSkQFnoECAsQAw&url=https%3
A%2F%2Fwww.treinaweb.com.br%2Fblog%2Fo-que-e-mvc%23%3A~%3Atext%3DO
%2520MVC%2520sugere%2520uma%2520maneira%2Ccamada%2520de%2520contro
le%2520(controller).&usg=AOvVaw2L3_wBACRHWhMqmBPEBa0t&opi=89978449

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwihi47z26GCAxWYALkGHaQGDSkQFnoECA0QAw&url=https%3
A%2F%2Fawari.com.br%2Farquitetura-mvc%2F%23%3A~%3Atext%3DO%2520obje
tivo%2520da%2520arquitetura%2520MVC%2Cuma%2520maior%2520escalabilidade
%2520e%2520manuten%25C3%25A7%25C3%25A3o.&usg=AOvVaw2afp43Iwdo-zf
AuN6gj4eJ&opi=89978449
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact
=8&ved=2ahUKEwjf-sP_26GCAxXqLrkGHQMIDpgQFnoECAgQAw&url=https%3A
%2F%2Fpt.quora.com%2FQuais-s%25C3%25A3o-as-vantagens-e-desvantagens-do-m
odelo-MVC%23%3A~%3Atext%3DO%2520forte%2520do%2520MVC%2520%25C3
%25A9%2CDDD%2520%25C3%25A9%2520muito%2520mais%2520eficiente.&usg=
AOvVaw3xqeIVTC_4r59iwV4qASIq&opi=89978449

Você também pode gostar