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!
This template repository includes several features to streamline the development of Laravel packages:
- Configured PHPUnit for unit testing.
- Integrated Pest PHP for elegant console support and architecture testing.
- Orchestra Testbench for Laravel package testing.
- PHPStan extensions for PHPUnit and Laravel.
- Infection for mutation testing to ensure quality.
- Mutation test reports are uploaded Stryker Mutator Dashboard.
- 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.
- PHP CS Fixer Config with custom configuration for consistent code style.
- Composer Normalize to ensure a consistent
composer.json
format. - Yamllint for YAML file linting.
- Actionlint for GitHub Actions workflow linting.
- Markdownlint for Markdown file linting.
- 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.
- Docker support for consistent development environments.
- Pre-commit hooks setup to ensure code quality before commits.
-
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.
- Support for PHP 8.2+ and Laravel 10.x/11.x.
- Configured
autoload
andautoload-dev
for optimal namespace management. - PHAR dependencies managed using Phive.
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
To run tests, run the following command:
make test
To run mutation tests, using infection/infection
:
make infect
Code quality using PHPStan:
make lint-stan
and using Psalm:
make lint-psalm
Fix code using The PHP Coding Standards Fixer (PHP CS Fixer) to follow our standards:
make lint-php
Lint all yaml files in project:
make lint-yaml
Lint all yaml files in project:
make lint-md
Lint all yaml files in project:
make lint-actions
This project has a security policy.
Thank you for considering contributing to the wayofdev community! We are open to all kinds of contributions. If you want to:
- π€ Suggest a feature
- π Report an issue
- π Improve documentation
- π¨βπ» Contribute to the code
You are more than welcome. Before contributing, kindly check our contribution guidelines.
- Twitter: Follow our organization @wayofdev and the author @wlotyp.
- Discord: Join our community on Discord.