/laravel-package-tpl

๐Ÿš€ Jump-start your Laravel package development with our pre-configured Composer template, designed for seamless integration. This template includes essential tools such as PHPUnit, PHPStan, GitHub Actions, and Docker to streamline your workflow and enhance productivity.

Primary LanguageMakefileMIT LicenseMIT


WayOfDev Logo

Build
Build Status

Project
Total Downloads Latest Stable Version Commits since latest release PHP Version Require

Quality
Codecov Mutation testing badge PHP Stan Level 6 of 9

Community
Discord Follow on Twitter (X)


Laravel Package Template

This is a template repository designed to kick-start the development of Laravel packages with essential tools and setups pre-configured.


If you like/use this package, please consider โญ๏ธ starring it. Thanks!

Screenshot

๐Ÿš€ Features

This template repository includes several features to streamline the development of Laravel packages:

โ†’ Testing

โ†’ Static Analysis

  • PHPStan for static analysis, ensuring code quality and robustness.
  • Larastan for Laravel-specific static analysis.
  • PHPStan strict rules for enforcing strict type checks and standards.
  • Psalm for finding errors in PHP applications through static analysis.
  • PHP Rector for automated code upgrades and refactoring, maintaining modern code standards.

โ†’ Coding Standards

โ†’ Continuous Integration

  • Automated testing with code coverage report generation using PHPUnit and Xdebug, uploaded to Codecov.
  • Automated linting of YAML files using ibiqlik/action-yamllint.
  • Automated PHP code linting to ensure code quality and standards using wayofdev/php-cs-fixer-config.
  • Markdown linting using DavidAnson/markdownlint-cli2.
  • Checks for outdated or insecure dependencies using Composer.
  • Mutation testing with Infection and Stryker Mutator to assess the quality of the test suite.
  • Security checks to identify vulnerabilities in dependencies.
  • Comprehensive static analysis with PHPStan and Psalm.
  • Extensive testing across different setups to ensure compatibility and stability.

โ†’ Development Environment

  • Docker support for consistent development environments.
  • Pre-commit hooks setup to ensure code quality before commits.

โ†’ Issue Templates

  • This package is equipped with a set of ready-to-use issue templates to streamline contributions and issue reporting.

    You can find these templates organized in the .github/ISSUE_TEMPLATE directory.

โ†’ Miscellaneous

  • Support for PHP 8.2+ and Laravel 10.x/11.x.
  • Configured autoload and autoload-dev for optimal namespace management.
  • PHAR dependencies managed using Phive.

๐Ÿ’ฟ Installation

To use this template, clone the repository and install the dependencies:

$ git clone https://github.com/wayofdev/laravel-package-tpl.git
$ cd laravel-package-tpl

$ make env install

### full list of available commands:
$ make help

๐Ÿงช Running Tests

โ†’ PHPUnit tests

To run tests, run the following command:

make test

โ†’ Mutation tests

To run mutation tests, using infection/infection:

make infect

โ†’ Static Analysis

Code quality using PHPStan:

make lint-stan

and using Psalm:

make lint-psalm

โ†’ Coding Standards Fixing

Fix code using The PHP Coding Standards Fixer (PHP CS Fixer) to follow our standards:

make lint-php

โ†’ Lint Yaml files

Lint all yaml files in project:

make lint-yaml

โ†’ Lint Markdown files

Lint all yaml files in project:

make lint-md

โ†’ Lint GitHub Actions

Lint all yaml files in project:

make lint-actions

๐Ÿ”’ Security Policy

This project has a security policy.


๐Ÿ™Œ Want to Contribute?

Thank you for considering contributing to the wayofdev community! We are open to all kinds of contributions. If you want to:

You are more than welcome. Before contributing, kindly check our contribution guidelines.

Conventional Commits


๐Ÿซก Contributors

Contributors Badge

๐ŸŒ Social Links


โš–๏ธ License

Licence