Como organizar: Painel e Site no Laravel 5

Vinicius Reis
by Vinicius Reis
Published in
2 min readMay 6, 2015

--

Algumas pessoas ficam na dúvida em como organizar seus controllers e views para dois ou mais ambientes, como por exemplo: Site (front) e o Admin (Painel)

Pretendo dar algumas dicas de como fazer isso no Laravel.

Organizando seus Controllers

Há quem ache que você possa/deva usar o mesmo controller, e isso esta MUITO errado.
Quem conhece SOLID sabe que controller/classes devem possuir apenas uma responsabilidade, e ao usar o mesmo controller no painel e no front você esta dando muita responsabilidade a sua classe.

Use namespaces, é para isso que eles existem

É extremamente fácil organizar sua aplicação usando namespaces, e o Laravel + Composer deixa essa tarefa ainda mais fácil

Lembre-se que os namespaces são o reflexo das suas pastas

FrontCrl.php
PainelCtrl.php

Nesse modelo fica bem fácil a organização dos seus controllers, e possibilita a você criar lógicas que serão estendidas a todos os outros controllers do seu “módulo”.

Controllers

Fácil não?

Organizando suas rotas

E como ficam as rotas?

Route::group foi feito para ser usado

routes.php

Coisa linda!

Ainda sobre rotas, segue uma dica extra:

dica use resources

Organizando suas views

De que vale toda essa organização se suas views ficarem bagunçadas?
Sei que você é esperto e colocou suas views em pastas separadas, e corretamente as usa assim: view(‘painel.products.index’)

É mais uma preferencia pessoal do que um “guia de como fazer” mas eu gosto de chamar minhas views assim: view(‘painel::products.index’)

Qual o beneficio dessa abordagem? Poucos alem da dorganização visual.
Mas se um dia, por algum motivo você precisar mover sua pasta de views do painel para outro lugar, você não vai precisar fazer muita coisa, pois é só mudar o local do seu “namespace”

Espero ter ajudado vocês a entenderem como organizar pelo menos essa parte do projeto, claro que ainda há muito a se considerar, como seus models e repositórios, mas acredito que esta é a base para 99% dos projetos do gênero.

that’s all folks

--

--

Vinicius Reis
by Vinicius Reis

Fiquei sem meus peões, meu cavalo, minha torre, meu bispo… E até a rainha… Mas ainda é muito cedo para um xeque-mate. Roy Mustang — Fullmetal Alchemist