codeeasy / slim-framework-skeleton
Slim Framework skeleton by Code Easy
Installs: 28
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 0
Forks: 1
Open Issues: 0
Type:project
Requires
- php: ^7.4
- ext-json: *
- guzzlehttp/psr7: ^1.6
- http-interop/http-factory-guzzle: ^1.0
- laminas/laminas-diactoros: ^2.3
- nyholm/psr7: ^1.3
- nyholm/psr7-server: ^1.0
- php-di/php-di: ^6.2
- slim/psr7: ^1.1
- slim/slim: 4.*
- twig/twig: ^3.0
- vlucas/phpdotenv: ^5.1
Requires (Dev)
- phpunit/phpunit: ^9.2
- squizlabs/php_codesniffer: ^3.5
- symfony/var-dumper: ^5.2
- vimeo/psalm: ^3.12
This package is auto-updated.
Last update: 2025-03-17 11:21:21 UTC
README
Slim Framework Skeleton by Code Easy
Uma maneira simples de começar com o Slim Framework tendo o mínimo necessário.
TABELA DE CONTEÚDOS
- Sobre
- Status do Projeto
- Funcionalidades
- Pré-requisitos
- Como Rodar a Aplicação/Testes
- Download
1.1. Composer
1.2. Github (Download Manual) - Configurações
- Executando
3.1. PHP
3.2. Docker - Dicas para o Docker
- Testes
- Download
- Tecnologias Utilizadas
- Contribuição
- Autor
- Licensa
SOBRE
O "Slim Framework Skeleton by Code Easy" é um esqueleto de uma aplicação com o Slim Framework que tem o objetivo de trazer o mínimo necessário para desenvolver uma aplicação com o Slim Framework já configurada incluindo:
- Uma linguagem de template;
- Injeção de dependências;
- Testes automatizados;
- Estrutura de diretórios;
- Dotenv;
- Um projeto configurado com a arquitetura MVC;
- Containers através do Docker.
OBS: A única camada do MVC que não foi implementada é o Model pelo fato de que, para cada tipo de armazenamento, seja um banco de dados SQL, um arquivo, algum tipo de banco de dados NoSQL, entre outros, existe uma implementação diferente, além de que, uma aplicação ou um site com o mínimo necessário, pode nem mesmo precisar de um banco de dados as vezes.
STATUS DO PROJETO
- 🚧 Helpers para testes automatizados: Em construção 🚧
- ⛔ Slim CSRF: Não iniciado ⛔
- ⛔ Manual de Contribuição: Não iniciado ⛔
FUNCIONALIDADES
- Testes automatizados com o PHP Unit. Os testes estão localizados no diretório
tests/
e são configurados emphpunit.xml
; - Análise estática de código com o Psalm;
- Kernel da aplicação onde tudo é iniciado e configurado, localizado em
src/Kernel/Server.php
; - Provedor de Serviços, funciona com o PHP-DI e fica localizado em
src/Kernel/Provider.php
, local esse onde é possível realizar as injeções de dependências no Slim Framework; - Middlewares localizados em
src/Http/Middleware
e configurados emsrc/Kernel/Middleware.php
; - Sistema de rotas construído em
src/Routes
e invocados emsrc/Kernel/Server.php
; - Controllers construídos em
src/Http/Controller
e invocados emsrc/Routes
; - Área de Serviços (Services) que podem ser construídos para a sua aplicação e injetados pelo Provedor de Serviços;
- Linguagem de template Twig:
- Os arquivos Twig se encontram no diretório
resources/view/
; - O serviço do Twig se encontra no diretório
src/Service/Twig
bem como as suas configurações; - Dentro do serviço do Twig já tem uma estrutura pronta para você configurar as suas próprias funções e filtros do Twig;
- Possui um sistema de cache sendo que o cache fica armazenado em
cache/twig
.
- Os arquivos Twig se encontram no diretório
- Helpers personalizados que podem ser constrídos em
config/helpers.php
; - Diretório public com arquivos prontos para a publição de um site com foco no SEO.
PRÉ-REQUISITOS
Para utilizar esse esqueleto os requisito são:
- PHP 7.4 ou superior;
- Composer (De preferência a versão 2, mesma utilizada na criação desse projeto);
- Docker e Docker Compose (Opcional).
COMO RODAR A APLICAÇÃO/TESTES
1. Download
OBS: Problemas na execução do composer podem ocorrer caso esteja faltando algum módulo a ser instalado no seu PHP.
1.1. Composer
Você deve baixar o esqueleto como um novo projeto através do composer com o comando composer create-project codeeasy/slim-framework-skeleton <nome-do-projeto>
.
Você também pode escolher uma das versões e executar o comando composer create-project "codeeasy/slim-framework-skeleton:v0.0.3" <nome-do-projeto>
, por exemplo, alterando a v0.0.3
pela versão desejada.
As versões se encontram no link a seguir:
1.2. Github (Download Manual)
Acesse o seguinte link:
- Github Releases: https://github.com/codeeasy-dev/slim-framework-skeleton/releases
Aqui você terá todas as versões do projeto, da mais recente à mais antiga, é só você escolher uma e baixar o .zip
ou o .tar.gz
e depois descompactar.
Por fim, acesse o diretório descompactado e execute o comando composer install
para instalar as dependências.
2. Configurações
Copie o arquivo .env.example
para .env
e preencha com os dados necessários, se necessário.
3. Executando
3.1 PHP
Se for usar o PHP que está instalado na sua máquina então execute o comando php -S 0.0.0.0:<SUA-PORTA> -t public
como por exemplo php -S 0.0.0.0:8080 -t public
, depois acesse o seu navegador com o link http://localhost:<PORTA_ESCOLHIDA>
, se aparecer o site então é porque está tudo pronto, agora é só começar a programar.
3.2 Docker
Se for usar o docker acesse o arquivo dockerfile
e altere os conteúdos da linha 4 a linha 7.
ARG USER=demo ARG UID=1000 ARG GID=1000 ARG PW=demo
Aqui você pode alterar USER=demo
por um outro nome de usuário como USER=codeeasy
por exemplo e também alterar a senha de PW=demo
para outra como PW=1234
.
O UID
e o GID
estão relacionados ao ID do usuário e o ID do grupo numa distribuição linux, se você estiver usando uma distribuição linux você pode colocar os mesmos IDs que o seu usuário e grupo para evitar problemas de permissão de arquivos.
Para descobrir os IDs de usuário e grupo, repectivamente, na sua distribuição linux execute no terminal o comando echo $(id -u) $(id -g)
e os dois IDs serão mostrados.
É claro que você também pode colocar qualquer outro ID.
No Windows o sistema de arquivos funciona diferente então você pode colcoar qualquer ID ou deixar o padrão de 1000 1000
.
Depois você pode acessar o docker-compose.yml
e alterar a porta padrão que está como 8080
, se desejar, para isso basta alterar APENAS UMA das portas para a porta desejada como é mostrado a baixo.
ports: - <PORTA-A-SER-ALTERADA>:80
Exemplo alterando para a porta 8085:
ports: - 8085:80
Também é possível alterar o nome do container como é mostrado a baixo:
services: web: build: . container_name: <NOME-DO-CONTAINER>
Depois disso execute o comando docker-compose up -d
para montar a imagem e criar o container.
Execute o comando docker-compose ps
para verificar se o container está em execução e se aparecer State Up
e Ports 0.0.0.0:80-><PORTA-ESCOLHIDA>/tcp
então o container está funcionando.
Por fim acesse no seu navegador a URL http://localhost:<PORTA-ESCOLHIDA>
, se aparecer o site então é porque está tudo pronto, agora é só começar a programar.
4. Dicas para o Docker
Se você estiver usando o docker segue algumas dicas de comandos para serem utilizados:
docker-compose ps
: Verifica o status dos containers especificados no arquivodocker-compose.yml
;docker-compose up -d
: Faz o build da imagem dodockerfile
, caso não exista o build ainda, e cria os containers;docker-compose build
: Faz o build da imagem do dockerfile;docker-compose down
: Destrói os containers especificados nodocker-compose.yml
;docker-compose stop
: Para a execução dos containers especificados nodocker-compose.yml
;docker-compose start
: Inicia a execução dos containers especificados nodocker-compose.yml
caso os containers já tenham sido criados;docker exec -it <NOME-DO-CONTAINER> /bin/bash
: Acessa o terminal de um container em específico usando o bash.
5. Testes
5.1 PHP Unit
Todos os testes se encontram dentro do diretório tests/
.
Para executar os testes automatizados execute o comando vendor/bin/phpunit
.
5.2 Psalm
Para executar os testes execute o comando vendor/bin/psalm --show-info=true
.
TECNOLOGIAS UTILIZADAS
CONTRIBUIÇÃO
Felipe Vieira 💻 |
AUTOR
Felipe Vieira