Teste PHP para a vaga de Desenvolvedor Pleno da Made4IT, onde deve-se desenvolver um pequeno sistema de blog utilizando arquitetura MVC.
Houveram algumas modificações no projeto para o resultado final. A princípio é pedido, claramente, para não usar framework, porém, em um certo momento durante a madrugada, percebi que estava ficando complexo de mais, os arquivos estavam começando a ficar bagunçados, então resolvi usar a estrutura do Laravel para me ajudar na organização, entendo que não deveria mas achei, no momento, a melhor solução para organização.
Outra mudança foi a parte do backup, a princípio era para fazer um botão que realiza-se o backup, entretanto, devido ao modelo que eu escolhi fazer o projeto, utilizando containers dock, ficou meio complicado a integração do PHP com o backup da forma que eu queria. Tendo em vista que se tem um certo prazo para a entrega, apesar de não ter sido esclarecido no requisito, resolvi procurar uma solução mais rápida e barata para o momento. A solução foi fazer o backup no próprio script que sobe o programa.
Para o projeto você precisará estar usando um sistema com base GNU/Linux, ter o Docker e o Docker-compose instalados.
- Obs: Houveram, exaustivos, testes usando o sistema Fedora Silverblue 35, entretanto, na teoria, deve funcionar em qual sistema com base GNU/Linux.
Clone o repositorio do projeto. Entre na pasta do projeto e execute o script bash.
$sudo ./subir.sh
Não tem muito segredo, o script faz todo o trabalho complicado de subir os containers e subir as migrations do banco de dados.
Quando rodar o projeto pela primiera vez não há a necessidade de realizar o backup, então responda apenas como "nao".
Se tudo der certo, você deverá ter um log mais ou menos como esse:

O backup pode ser realizado de duas formas, a primeira é com a utilização do próprio script de subir o projeto, onde ele irá perguntar se deseja fazer o backup e também se deseja realizar o restore.
Uma observação importante é que se porventura desejar fazer o backup, porém, sem o restore, observe que a base de dados ficará vazia, isso irá quebrar o projeto pois não haverá tabela ao qual consultar, sendo necessário realizar o restore manualmente. Estou trabalhando em uma solução para sanar esse problema.
E também pode ser realizado de maneira manual, utilizando o script backup.sh.
$sudo ./backup.sh
IMPORTANTE: Os comando devem ser realizados com permissão de root
Para logar como Administrador use as credenciais:
- User: [email protected]
- pass: 12345678
Para logar como usuario normal:
- User: [email protected]
- pass: 12345678
- nginx - Porta Principal do projeto -
:8000 - mysql -
:9906 - phpadmin -
:8080

