Desenvolvimento de Sistemas para Automação Comercial

Voltar

Laravel - 07/01/2026



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.