Laravel - 07/01/2026
-
- Criar ambiente de desenvolvimento WSL
- Extenções VSCode
- Criar Projeto
- PHP
- docker-compose.yml
- Dockerfile
- .env
- Fortify
- Spatie
- Alterar o Migrate Users
- Registrar o Middleware
- Criar Seeders
- Registrar os Seeders
- Restrigindo os acessos com Spatie
- Criar banco de dados
- Iniciando aplicativo pela primeira vez
- Comandos php artisan
- GitHub
- Passando de DEV para PROD
- Atualizando o Sistema
- Tradução pt_BR
- Personalizando Email
Criar ambiente de desenvolvimento WSL:
-
Extensões VS Code:
-
Criar Projeto:
O Docker é um gerenciador de containers, ele tem um plugin chamado compose, mas esse plugin não será usado agora, oque será usado é um container chamado composer que criará a estrutura do Laravel que é um aplicativo em PHP, por isso ao se falar em app está se falando do Laravel.
Então o Docker baixará e executará um container chamado compose que criará a estrutura do Laravel pelo comando "composer create-project laravel/laravel .".
Obs. Quando o Projeto já existir, quando por exemplo baixado em outro lugar pelo git clone, o composer do php precisará ser executado novamente para instalar algumas dependências do projeto que não são enviadas ao GitHub.
-
PHP:
Depois de criada a estrutura do Laravel pelo composer do PHP, além de instalar os requerimentos contidos no arquivo compose.json, o comando executado acima também espelhará os aquivos de dentro do container do PHP para a pasta atual do projeto, assim é uma das formas de interagir com as configurações internas dos containers, por isso já se pode criar também o diretório para a configurações do php.ini.
Conteúdo:
-
docker-compose.yml
Configurar o docker-compose.yml para gerenciar a criação e configuração do container do PHP onde será definida o vínculo de pastas e arquivos externos com os internos, redes virtuais para comunicação com servidor e banco de dados, etc.
Obs. A identação é fundamental definida a cada 2 espaços e não pode ser usado TAB.
-
Dockerfile
O Dockerfile tem configurações adicionais e comandos que serão executados no UP do container.
Tambérm instalará os pacotes necessários e definirá privilérios de usuárias para evitar que os arquivos criados posteriormente sejam criados como root.
-
.env
Aqui é definida as configuraçãos de conexão, por padrão ele não vai para o git, por isso deve ser recriado e reconfigurado quando passar do ambiente DEV para o PROD.
Conteúdo para alterar:
-
Fortify:
Para login, e autenticações de usuário será usado o Fortify.
Após executar esses comandos é necessário registrar o fortify em bootstrap/providers.php:
Se o container do PHP já estiver rodando execute o composer install novamente para se seja instaladas as depêndencias necessárias.
Ou se não estiver rodando pode usar a imagem temporaria do composer.
-
Auto Cadastro de Usuário
Para auto cadastrar-se ou redefinir a senha os seguintes arquivos precisam ser editados:
app/Providers/FortifyServiceProvider.php
Adicionar dentro da função boot().
No Header da tela de login adicione:
app/Models\User.php
-
Spatie:
O Spatie é responsável pelas regras de permissões, ele que diz quem pode ver oque.
O composer install instalará as dependências necessárias.
O php artisan migrate:refresh apagará o banco de dados e recontruirá todas as tabelas com os usuários iniciais já determinando suas permissões.
ATENÇÃO!
Se ouver dados importantes no banco de dados não execute o "migrate:refresh" pois você perderá todos os dados. Nesse caso use o psql do postgres.
-
Alterar o Migrate Users
Em app/Models/Users.php adicionar abaixo do namespace App\Models:
Dentro da classe User extends Authenticable substituir use HasFactory, Notifiable; por:
-
Registrar o Middleware:
Os Middlewares são registados em bootstrap/app.php:
-
Criar Seeders:
Criar os seeders dos primeiros usuários do app e suas permissões:
Em database/seeders/RoleSeeder.php:
Em database/seeders/UserSeeder.php:
-
Registrar os Seeders:
Registrar os seeders em database/seeeders/DatabaseSeeder.php, primeiro o seeder das regras RoleSeeder e depois o seeder dos usuários UserSeeder, para que as tabelas sejam preenchidas na ordem correta, pois para cadastrar uma usuário com uma regra, ela já deve existir.
-
Restrigindo os acessos com Spatie:
Para se controlar o acesso de rotas inteitas use:
Para restringir apenas partes de códigos use:
Criar banco de dados:
-
No diretório do servidor acesse o container do postgres, crie as redes virtuais para comunicação se ainda não foram criadas e crie o banco de dados, usuário e senha:
Ou caso já tenha um banco de dados basta realizar o restore:
Iniciando aplicativo pela primeira vez:
-
Agora subiremos o container, entraremos dentro dele e executaremos seu bash para configurar a aplicação via php artisan.
Veja mais comandos Docker AQUI
. -
Criar chave para criptografia, criar tabelas base do sistema no banco de dados alimentar com dados pré-definidos e prepara o sistema para o uso de APIs.
Comandos php artisan:
-
Caso algum arquivo criado e espelhado venha como dono root, execute o comando a seguir:
-
Criar um Controller:
-
Criar um Model:
-
Criar um Migration:
-
Criar um Seeder:
-
Criar Tabelas dos Migrations e adicionar os dados dos Seeders:
-
Atualizar as alterações das tabelas feitas no Migrate:
-
Apenas adicinar os dados dos Seeders quando as tabelas jé existirem:
-
Recriar todas as tabelas e iniciar dados básicos:
-
Limpesa quando algo está bugado:
-
Gerar Cache para melhor velocidade em produção:
-
Criar chave para cripitografias funcionarem corretamente:
-
Criar link simbólico:
Expor o diretório storage/app/public no diretório public/storage, dessa forma os arquivos podem ser acessados de forma pública pelo browser.
-
Listar rotas válidas:
-
Procurar rota específica:
-
Cria arquivos para envio de email:
-
Limpa o banco por completo, tabelas, dados, etc:
GitHub:
-
Adicione as restrições no .gitignore para evitar problemas:
-
Configurar o GitHub:
Passando de DEV para PROD:
-
GitHub
No servidor Debian de produção após instalar e configurar o git e o docker, crie o diretório de projeto baixe o projeto do GitHub e instale o composer do php através do docker para criar o vendor dentre outras coisas:
Crie as redes virtuais, o arquivo .env, e a chave de criptografia.
Atualizando o Sistema:
-
Sempre que houver alterações no projeto no github execute:
Tradução pt_BR:
-
No .env
Obs. Sempre que mexer no .env execute:
Personalizando Email:
-
Para aconpanhar o desenvolvimento do visual do email de recuperação de senha use a rota temporatia abaixo:
Para exibir o logo apague o if/else do arquivos resources/views/vendor/mail/html/themes/header.blade.php mas deixe a tag da imagem e coloque um url completo de uma imagem online.