PHPackages                             codeeasy/slim-framework-skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. codeeasy/slim-framework-skeleton

ActiveProject[Framework](/categories/framework)

codeeasy/slim-framework-skeleton
================================

Slim Framework skeleton by Code Easy

v0.0.5(5y ago)3301MITPHPPHP ^7.4

Since Jul 25Pushed 5y agoCompare

[ Source](https://github.com/codeeasy-dev/slim-framework-skeleton)[ Packagist](https://packagist.org/packages/codeeasy/slim-framework-skeleton)[ RSS](/packages/codeeasy-slim-framework-skeleton/feed)WikiDiscussions develop Synced 1w ago

READMEChangelog (6)Dependencies (14)Versions (9)Used By (0)

 Slim Framework Skeleton by Code Easy

======================================

[](#----slim-framework-skeleton-by-code-easy)

Uma maneira simples de começar com o Slim Framework tendo o mínimo necessário.

 [![license](https://camo.githubusercontent.com/c9c1d34d8040cf08521e9935b9cf64b262c8927148a811298bc1c525c43c8e02/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f636f6465656173792d6465762f736c696d2d6672616d65776f726b2d736b656c65746f6e)](https://camo.githubusercontent.com/c9c1d34d8040cf08521e9935b9cf64b262c8927148a811298bc1c525c43c8e02/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f636f6465656173792d6465762f736c696d2d6672616d65776f726b2d736b656c65746f6e)

TABELA DE CONTEÚDOS
-------------------

[](#tabela-de-conteúdos)

- [Sobre](#sobre)
- [Status do Projeto](#status-do-projeto)
- [Funcionalidades](#funcionalidades)
- [Pré-requisitos](#pr%C3%A9-requisitos)
- [Como Rodar a Aplicação/Testes](#como-rodar-a-aplica%C3%A7%C3%A3otestes)
    1. [Download](#1-download)
        1.1. [Composer](#11-composer)
        1.2. [Github (Download Manual)](#12-github-download-manual)
    2. [Configurações](#2-configura%C3%A7%C3%B5es)
    3. [Executando](#3-executando)
        3.1. [PHP](#31-php)
        3.2. [Docker](#32-docker)
    4. [Dicas para o Docker](#4-dicas-para-o-docker)
    5. [Testes](#5-testes)
- [Tecnologias Utilizadas](#tecnologias-utilizadas)
- [Contribuição](#contribui%C3%A7%C3%A3o)
- [Autor](#autor)
- [Licensa](#licensa)

---

SOBRE
-----

[](#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
-----------------

[](#status-do-projeto)

- 🚧 Helpers para testes automatizados: Em construção 🚧
- ⛔ Slim CSRF: Não iniciado ⛔
- ⛔ Manual de Contribuição: Não iniciado ⛔

---

FUNCIONALIDADES
---------------

[](#funcionalidades)

- Testes automatizados com o PHP Unit. Os testes estão localizados no diretório `tests/` e são configurados em `phpunit.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 em `src/Kernel/Middleware.php`;
- Sistema de rotas construído em `src/Routes` e invocados em `src/Kernel/Server.php`;
- Controllers construídos em `src/Http/Controller` e invocados em `src/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`.
- 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
--------------

[](#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
-----------------------------

[](#como-rodar-a-aplicaçãotestes)

#### 1. Download

[](#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

[](#11-composer)

Você deve baixar o esqueleto como um novo projeto através do composer com o comando `composer create-project codeeasy/slim-framework-skeleton `.

Você também pode escolher uma das versões e executar o comando `composer create-project "codeeasy/slim-framework-skeleton:v0.0.3" `, por exemplo, alterando a `v0.0.3` pela versão desejada.

As versões se encontram no link a seguir:

- Packagist:

##### 1.2. Github (Download Manual)

[](#12-github-download-manual)

Acesse o seguinte link:

- Github 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

[](#2-configurações)

Copie o arquivo `.env.example` para `.env` e preencha com os dados necessários, se necessário.

---

#### 3. Executando

[](#3-executando)

##### 3.1 PHP

[](#31-php)

Se for usar o PHP que está instalado na sua máquina então execute o comando `php -S 0.0.0.0: -t public` como por exemplo `php -S 0.0.0.0:8080 -t public`, depois acesse o seu navegador com o link `http://localhost:`, se aparecer o site então é porque está tudo pronto, agora é só começar a programar.

##### 3.2 Docker

[](#32-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:
    - :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:
```

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->/tcp` então o container está funcionando.

Por fim acesse no seu navegador a URL `http://localhost:`, se aparecer o site então é porque está tudo pronto, agora é só começar a programar.

---

#### 4. Dicas para o Docker

[](#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 arquivo `docker-compose.yml`;
- `docker-compose up -d`: Faz o build da imagem do `dockerfile`, 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 no `docker-compose.yml`;
- `docker-compose stop`: Para a execução dos containers especificados no `docker-compose.yml`;
- `docker-compose start`: Inicia a execução dos containers especificados no `docker-compose.yml` caso os containers já tenham sido criados;
- `docker exec -it  /bin/bash`: Acessa o terminal de um container em específico usando o bash.

---

#### 5. Testes

[](#5-testes)

##### 5.1 PHP Unit

[](#51-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

[](#52-psalm)

Para executar os testes execute o comando `vendor/bin/psalm --show-info=true`.

---

TECNOLOGIAS UTILIZADAS
----------------------

[](#tecnologias-utilizadas)

- [PHP 7.4^](https://www.php.net/)
- [Slim Framework 4](https://www.slimframework.com/)
- [Guzzle Http](https://docs.guzzlephp.org/en/stable/)
- [PHP Unit](https://phpunit.de/)
- [Twig](https://twig.symfony.com/)
- [PHP DI](https://php-di.org/)
- [Psalm](https://psalm.dev/)
- [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer)
- [PHP DotEnv](https://github.com/vlucas/phpdotenv)
- [Docker](https://www.docker.com/)

---

CONTRIBUIÇÃO
------------

[](#contribuição)

  [![](https://avatars.githubusercontent.com/u/20212780?v=3)
**Felipe Vieira**](https://github.com/frv-dev)
[💻](https://github.com/codeeasy-dev/slim-framework-skeleton/commits?author=frv-dev "Code") ---

AUTOR
-----

[](#autor)

[ ![](https://avatars.githubusercontent.com/u/20212780?v=3)
  **Felipe Vieira** ](https://github.com/frv-dev)
[![Linkedin Badge](https://camo.githubusercontent.com/c600755cc1b61cfa4b341e2392ee63706eed8c32d5886ff366adbf8e54d7b34f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d46656c69706525323052656e616e2532305669656972612d626c75653f6c6f676f3d4c696e6b6564696e266c6f676f436f6c6f723d7768697465266c696e6b3d68747470733a2f2f7777772e6c696e6b6564696e2e636f6d2f696e2f66656c6970652d72656e616e2d7669656972612f)](https://www.linkedin.com/in/felipe-renan-vieira/)[![Gmail Badge](https://camo.githubusercontent.com/01bf144b308dda4efc901fac383f9c81b577e11e8f6c555e031478f9fb487f68/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d66656c69706572656e616e766965697261253430676d61696c2e636f6d2d7265643f6c6f676f3d476d61696c266c6f676f436f6c6f723d7768697465266c696e6b3d6d61696c746f3a66656c69706572656e616e76696569726140676d61696c2e636f6d)](mailto:feliperenanvieira@gmail.com)

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~27 days

Recently: every ~40 days

Total

7

Last Release

1962d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d939382ae3cb3839d38993a8479b6fd7ea67dfad4d97c7c35264b7b7b805f4bc?d=identicon)[codeeasy](/maintainers/codeeasy)

---

Top Contributors

[![frv-dev](https://avatars.githubusercontent.com/u/20212780?v=4)](https://github.com/frv-dev "frv-dev (61 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/codeeasy-slim-framework-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/codeeasy-slim-framework-skeleton/health.svg)](https://phpackages.com/packages/codeeasy-slim-framework-skeleton)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[forme/framework

An MVC framework for WordPress.

175.0k3](/packages/forme-framework)[bacula-web/bacula-web

The open source web based reporting and monitoring tool for Bacula

1537.5k](/packages/bacula-web-bacula-web)[lucatacconi/crunz-ui

User interface for lavary/crunz. Integrate Crunz library and funtions: Tabular, monthly or weekly interface to view the scheduled and executed tasks. Quick display of the execution result of the tasks that have been executed (Indicator icons easily show the result). Upload, download, edit or delete tasks. Forced run of the task, even outside the scheduled time with eventual display of the log once the execution is completed. It can be used with integrated Crunz or with a version of Crunz already installed on the system

151.5k](/packages/lucatacconi-crunz-ui)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
