oscar-ol / slim-starter
A PHP application boilerplate using Slim v4, featuring a Laravel-inspired architecture.
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- doctrine/dbal: ^4.2
- illuminate/database: ^11.42
- illuminate/support: ^11.42
- php-di/php-di: ^7.0
- phpmailer/phpmailer: ^6.9
- psr/http-message: ^2.0
- ramsey/uuid: ^4.7
- robmorgan/phinx: ^0.16.6
- slim/csrf: ^1.5
- slim/psr7: ^1.7
- slim/slim: ^4.0
- twig/twig: ^3.20
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- larastan/larastan: ^3.1
- laravel/pint: ^1.20
- pestphp/pest: ^3.8
- rector/rector: ^2.0
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
-
Run this command to install:
composer create-project oscar-ol/slim-starter [my-app-name]
-
Navigate to the project directory:
cd [my-app-name]
-
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.