Skip to content

semhoun/slim-skeleton-mvc

Repository files navigation

Slim 4 MVC Skeleton

Codacy Badge Latest Stable Version Total Downloads License Ask DeepWiki

A modern web application skeleton based on Slim 4, using the MVC architecture. This project is ideal for quickly starting the development of an API or a web application with a robust stack.

🚀 Features

🛠️ Requirements

  • PHP 8.4 or higher
  • Composer 2.0 or higher
  • SQLite extension (or MySQL/PostgreSQL for production)
  • Required PHP extensions: json, pdo, pdo_sqlite

🛠️ Installation

1. Create the project

Use Composer to install the project:

composer create-project semhoun/slim-skeleton-mvc [your-app]

2. Configuration

  1. Copy the .env.example file to .env:
cp .env.example .env
  1. By default, the application uses a SQLite database located in var/database.sqlite. For production, configure your database and other settings in the .env file or via environment variables.

  2. Initialize the database:

./console migrations:migrate
  1. (Optional) Generate Doctrine proxies:
./console orm:generate-proxies

3. Run the application

You can use the PHP built-in development server:

composer start

Or use the console command:

./console serve

The application will be accessible at http://localhost:8080.

4. Available Console Commands

# Clear application cache
./console cache:clear

# Initialize cache
./console cache:init

# Generate Doctrine proxies
./console orm:generate-proxies

# Run development server
./console serve

# List all available commands
./console list

🧪 Development Tools

Run unit tests:

composer test

Check code quality with PHP Insights:

composer insights-check

Apply automatic Rector fixes:

composer rector-fix

Fix code style issues:

composer insights-fix

Run pre-commit checks (code style + rector + dos2unix):

composer pre-commit

A compose.yml file is provided to facilitate deployment. Here is a configuration example:

services:
  slim:
    image: semhoun/webserver
    ports:
      - "8080:80"
    volumes:
      - .:/www
    environment:
      - APP_ENV=dev
      - DEBUG_MODE=true

To launch the environment with Docker:

docker compose up -d

📝 Notes

  • Ensure that the var folder has write permissions (for cache, logs, database)
  • Default credentials: admin / admin (change in production!)
  • The project includes an error rendering system (HTML/JSON) based on the Accept header
  • API routes are prefixed with /api (configurable in config/settings/_base_.php)

📚 Documentation

📄 License

This project is licensed under the MIT License. See the LICENSE file for more details.

🔄 Changelog

See the CHANGELOG.md file for version history and upcoming changes.

About

Slim 4 MVC Skeleton

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •