oscar-ol/slim-starter

A PHP application boilerplate using Slim v4, featuring a Laravel-inspired architecture.

v1.0.2 2025-05-04 09:46 UTC

This package is auto-updated.

Last update: 2025-06-04 10:03:44 UTC


README

Slim Starter is a base template for building PHP applications using the Slim microframework v4, but with an architecture inspired by Laravel.

This project includes helpers, libraries, and a folder organization that facilitates professional development of APIs or lightweight web applications, keeping the code clean and easy to maintain.

Features

  • Slim Framework: A fast and flexible microframework for PHP.
  • Laravel-inspired architecture: Organized folder structure, helpers, and centralized configuration.
  • Twig: Template engine for rendering views.
  • Eloquent ORM: Database management with Laravel's ORM.
  • Dotenv: Environment variable management.
  • CSRF Protection: Middleware to protect against CSRF attacks.
  • Error handling: Custom views for 404 and 500 errors.
  • Support for migrations and seeders: Using Phinx to manage the database.
  • Mailer Service: Simplified email sending with PHPMailer integration.
  • Testing with Pest: Write expressive and maintainable tests.
  • Static analysis with PHPStan: Ensure code quality and type safety.
  • Code formatting with Pint: Maintain consistent code style.
  • Modular structure: Easily extendable and maintainable codebase.

Requirements

  • PHP >= 8.1
  • Composer
  • Web server (Apache, Nginx, or PHP's built-in server)
  • Compatible database (MySQL, SQLite, etc.)

Installation

  1. Run this command to install:

    composer create-project oscar-ol/slim-starter [my-app-name]
  2. Navigate to the project directory:

    cd [my-app-name]
  3. Configure the environment variables in the .env file as needed.

Usage

Start the development server

php -S localhost:8080 -t public/

or

composer start

Project structure

  • app/: Contains controllers, middlewares, and exceptions.
  • config/: Configuration files.
  • database/: Migrations and seeders.
  • helpers/: Global functions to facilitate development.
  • public/: Application entry point.
  • resources/views/: Twig templates.
  • routes/: Web and API route definitions.
  • storage/: Cache and other generated files.
  • tests/: Unit and feature tests using Pest.

Useful commands

  • Migrations:

    vendor/bin/phinx create MigrationName
    vendor/bin/phinx migrate
    vendor/bin/phinx rollback
  • Seeders:

    vendor/bin/phinx seed:run

    Additional information about Phinx: Phinx Documentation

Composer Tools

This project includes several Composer tools to improve code quality and maintainability:

  • Rector: For automated code refactoring.

    composer tools:rector
  • PHPStan: For static code analysis.

    composer tools:phpstan
  • Pint: For code formatting.

    composer tools:pint
  • Pest: For running tests.

    composer tools:pest
  • Clear view cache:

    composer view:clear

You can run all tools at once using:

composer tools

Contributing

If you want to contribute to this project, please open an issue or submit a pull request. All help is welcome!

License

This project is licensed under the MIT License.