Projeto template desenvolvido em Laravel 8, para servir de guia de práticas para futuros projetos. Integração com os microsserviços de UFVJM.
Instalado no computador:
- git
- docker
- docker-compose
Instalar
sudo apt-get install aptitude
sudo aptitude install git
Instalar
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Instalar
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Dar permissão para o seu usuário executar docker
sem precisar de sudo
:
sudo usermod -aG docker $USER
IMPORTANTE: será necessário reiniciar a sessão (deslogar e logar novamente).
Edite o arquivo de configuração do seu terminal (Ex: bash: ~/.bashrc
) e adicione um alias para a execução do sail:
alias sail='bash vendor/bin/sail'
Depois carregue a configuração:
source ~/.bashrc
Depois disso, sempre que estiver na raiz do seu projeto, poderá acessar diretamente o sail com o alias configurado.
Caso não tenha, gerar a chave de ssh (substituir o email
):
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Pegar o conteúdo da sua chave pública (.pub) e adicionar no Gitlab no seu Perfil
Conteúdo da chave:
cat ~/.ssh/id_rsa.pub
Testando se não existe pasta para o código fonte
if [ ! -d ~/laravel ]; then
echo -e "Criando pasta para armazenar códigos das aplicações laravel"
mkdir ~/laravel
fi
Entrando no diretório e baixando:
cd ~/laravel
git clone [email protected]:dds/laravel-8-dds.git
cd laravel-8-dds
cd ~/laravel/laravel-8-dds
if [ ! -f .env ]; then
echo -e "Gerando arquivo .env"
cp .env.example .env
fi
Lançar os valores corretos para os arquivos da integração com os microsserviços no arquivo .env. Substituir os valores de GRAPHQL_APP_ID e GRAPHQL_APP_KEY para os valores cadastrados na stack de Microsserviços DTI/DDS.
GRAPHQL_ENVNAME=teste
GRAPHQL_APP_ID=
GRAPHQL_APP_KEY=
Instalar as dependências do projeto:
cd ~/laravel/laravel-8-dds
docker run --rm -v $(pwd):/app composer/composer install
Configurando localmente scripts hook do git para executar automaticamente validações de código:
cd ~/laravel/laravel-8-dds
# copiando scripts
cp hooks/* .git/hooks
# adicioando permissao de execucao
chmod +x .git/hooks/*
Logar no hub do repositório do DDS - UFVJM (só precisar ser executado uma vez)
Alterar nome.sobrenome
para seus dados da conta institucional
docker login -u nome.subrenome hub.dds.ufvjm.edu.br
Deverá ser retornado Login Succeeded
.
Iniciar os containers dos serviços
sail up -d
- Atenção: caso alguma porta já esteja ocupada por outro serviço, você pode alterá-a no arquivo
.env
e escolher outra. Ex:Bind for 0.0.0.0:8090 failed: port is already allocated
Utilizando a ferramenta BrowserSync, seu navegador ficará conectado no servidor web, desta forma todas as atualizações da área de desenvolvimento serão carregadas automaticamente no seu navegador.
# iniciar o browserync
sail npm run watch
Acessar o ambiente através da URL fornecida no campo External
(Ex: http://172.25.0.6:8090).
Processar a fila de jobs do servidor:
sail artisan queue:work
Caso seja necessário reconstruir a imagem docker e subir os serviços novamente:
# parar os servicos
sail stop
#subir os servicos novamente recriando as imagens
sail up --build -d
Criar ou autalizar a estrutura do banco do dados e fornecer os dados iniciais:
sail artisan migrate:refresh --seed
echo -e "\nCorrigindo permissões na pasta da aplicação"
sudo chown "${USER}":101 -R .
sudo chown 1000:101 -R storage coverage bootstrap/cache
sudo chmod g+w -R storage coverage bootstrap/cache
sail down
Repositório do template Larawind: github.com/miten5/larawind
Arquivos para melhorar o autocomplete da IDE:
Instalação e configuração do spatie/laravel-permission
Substituir o valor da propriedade containstitucional:
# acessar o tinker
sail tinker
# recuperar o usuario
$user = \App\Models\User::where('containstitucional', 'everton.paiva')->first();
# adicionar perfil no usuario
$user->assignRole('Admin');
Adiciona as funcionalidades de cache diretamente a nível de Eloquent, usando cache nas consultas de banco de dados.
github.com/renoki-co/laravel-eloquent-query-cache
Ferramenta gráfica para visualização do conteúdo do Redis
Selection com busca dinâmica
Fonte: Laravel 8 - Building a Simple CMS
Repositório oficial: github.com/jackoftraits/laravel8-with-livewire
- Aula 1 - Installation
- Aula 2 - Create Operation using Jetstream Modal
- Aula 3 - Read, Update, Delete w/ Jetstream Modal
- Aula 4 - Understanding the Jetstream Modal
- Aula 5 - Frontpage Component for Dynamic Pages
- Aula 6 - A Brief Intro To Tailwind CSS
- Aula 7 - Frontend Design Using Tailwind CSS
- Aula 8 - Understanding the Basics of Alpine JS
- Aula 9 - Implement Dynamic Navigation Menu
- Aula 10 - User Access Roles Laravel Middleware
- Aula 11 - Create a Livewire CRUD Generator
- Aula 12 - Finalize Dynamic User Access Roles
- Aula 13 - Push Notifications without Pusher
- Aula 14 - Create a Simple Livewire Chat
Fonte: CRUD com TDD usando Laravel Jetstream com Livewire
Repositório original: github.com/Laravel-Road/crud-contacts
- Aula 1 - Instalação e customização
- Aula 2 - Formulário de cadastro
- Aula 3 - Listagem e Paginação
- Aula 4 - Edição e Remoção
- Aula 5 - Teams, Tenant e Policy
Erro Unable to call lifecycle method [mount] directly on component: [contacts.contact-new]
nos testes, conferir este post.
Repositório original: github.com/drehimself/lc-livewire-examples