💚 Not the monster you think. Just a better Slim.
SlimeKit is a lightweight enhancement of the Slim Framework that brings modern architectural structure to your PHP applications. Built for developers who love Slim’s simplicity and performance—but want a cleaner, more scalable project structure.
With a modular approach —covering routes, controllers, services, validators, and helpers— SlimeKit helps you stay focused on building features without getting lost in messy folders.
Slim Framework + Clear Structure + Developer Happiness = SlimeKit 🚀
There is only a little bit information that i can provide below for a while, full documentation will come soon
Based on Slim Framework 4 and Doctrine DBAL for Query Builder
✅ Requirements
- PHP v8.2
- PostgreSQL/MySQL (Use Aiven or Supabase for free RDBMS Cloud)
- Cloudinary account (for Free Image & Video Storage)
- Mailjet account (for Free Email SMTP)
- Docker (Optional)
⚙️ Installation
- Use
git clonefrom this repo. - Configure your
.envfile.
If you’re using Docker, there’s no need to create a .env file because it will be automatically generated by Docker in the image. Just configure all the necessary setup in the Dockerfile.dev or Dockerfile.prod and docker-compose.yml files.
To get started, simply run the following command in the terminal:
docker-compose up
If you want to stop:
ctrl+c
docker-compose down
The application URL is located at http://localhost:8080/
Just configure the BASE_PATH section in the .env file to point to the path in your local htdocs. For example, if the folder location in XAMPP is /htdocs/local/slimekit/api, then set it as shown below:
BASE_PATH=/local/slimekit/api
Create a .env file to store credential configurations if you use XAMPP or Laragon. But if you use Docker try to setup on Dockerfile.dev or Dockerfile.prod
ENVIRONMENT=DEVELOPMENT
BASE_PATH=/local/race/api
APP_NAME=SlimeKit
# SYM KEY (FILL WITH ALPHANUMERIC STRING)
SYM_KEY=
# DATABASE SECTION
DB_HOST=
DB_PORT=
DB_USER=
DB_PASS=
DB_NAME=
DB_CLIENT=pgsql/mysql
# CLOUDINARY SECTION
CLOUDINARY_URL=
# MAILJET SECTION
SMTP_HOST=mailjet-smtp-host
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-pass
SMTP_PORT=587
[email protected]
MAIL_FROM_NAME="Slimekit"
# CLOUDFLARE R2 SECTION
R2_REGION=auto
R2_ENDPOINT=https://xxxxxxxxxxxxxxxx.r2.cloudflarestorage.com
R2_ACCESS_KEY_ID=your-access-key-id
R2_SECRET_ACCESS_KEY=your-secret-access-key
R2_BUCKET=your-bucket-name
# VALKEY SECTION
VALKEY_SCHEME=
VALKEY_HOST=
VALKEY_PORT=
VALKEY_USERNAME=
VALKEY_PASSWORD=
composer install
or force using
composer update --ignore-platform-reqs
composer migrate
composer migrate:generate
- Use
generateto create a new migration. - Use
rollbackif you only want to step back one version. - Use
migrate prevto revert to the previous version. - Use
migrate <version>to roll back to a specific version. - Use
migrate 0to remove all migrations.
To generate file in Controller, Service, and Validator:
composer make:module NamaModule
composer make:module:admin NamaModule
composer make:module:client NamaModule
composer dump-autoload -o
