Skip to content

Projeto destinado para testes de pessoas desenvolvedoras.

License

Notifications You must be signed in to change notification settings

aztecweb/gestao-de-pdfs

Repository files navigation

Gestão de PDFs

Esse repositório é para um simples plugin WordPress que gerencia o arquivos PDFs através de um tipo personalizado de post.

Ele é base para os testes de programação que fizemos em nossos processos seletivos.

Dependências

O Docker é a única dependência para instalar e servir o projeto.

Instalação

$ mkdir -p ~/.docker_cache/{composer,wp-cli} 
$ docker compose pull
$ docker compose build
$ docker compose -f docker-compose.tests.yml pull
$ docker compose -f docker-compose.tests.yml build
$ docker compose run --rm -u $(id -u):$(id -g) composer install
$ setfacl -R -m u:$USER:rwx -m u:82:rwx public/packages/uploads 
$ setfacl -Rd -m u:$USER:rwx -m u:82:rwx public/packages/uploads 

Serviço

$ docker compose up -d server

O ambiente é servido no endereço http://localhost com um usuário admin / admin.

Integração com VSCode

No projeto temos já configuradas as extensões que recomendamos utilizar e a configuração de depuração do PHP.

Testes de aceitação

Os testes de aceitação ajudam a validar se as requisições da aplicação estão funcionando conforme esperado.

A construção dos testes é realizada utilizando Codeception com o auxílio do WPBrowser. Os testes estão no diretório tests.

$ docker compose -f docker-compose.tests.yml up -d chrome
$ docker compose -f docker-compose.tests.yml run --rm codecept run

É possível que a execução possua um erro se o teste for rodado logo após levantar os serviços. Isso porque o banco de dados estará ainda inicializando.

Db: SQLSTATE[HY000] [2002] Connection refused while creating PDO connection

Xdebug

Os serviços PHP possuem o Xdebug instalado e configurado para rodar a depuração com o VSCode sem a necessidade de configuração extra. A depuração de código faz parte do nosso dia-a-dia e pode ser uma aliada para a resolução dos desafios propostos durante o teste.

Padrão de código

O código segue o padrão de código do WordPress, ser compatível com a versão 8.2 do PHP e utilizar strict_types.

A validação do código é feita através da ferramenta PHPCS.

$ docker compose run --rm -u $(id -u):$(id -g) phpcs

É possível aplicar correções automática utilizando o comando PHPCBF.

$ docker compose run --rm -u $(id -u):$(id -g) --entrypoint=phpcbf phpcs

Tipagem

Valida se o código está utilizando tipagem em suas declarações. Isso reduz validações de tipo no meio do código, a quantidade de testes e de bugs.

A validação do código é feita através da ferramenta PHPStan.

$ docker compose run --rm -u $(id -u):$(id -g) phpstan

Usuários que não utilizam Linux e VSCode

Nossa preferência é rodar nossos projetos em ambiente Linux pela melhor integração com o Docker. Principalmente em relação a performance.

No caso do VSCode. Normalmente nossos desenvolvedores utilizam VSCode. Mas somos agnósticos a IDEs e nos adaptamos a IDE que cada pessoa se sinta mais produtiva.

Caso utilizará outro SO ou IDE para o teste, nos avise previamente para que possamos nos preparar. Os ajustes no ambiente será realizado antes do teste.

About

Projeto destinado para testes de pessoas desenvolvedoras.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published