laravel-package-tpl

Laravel package skeleton used in WOD projects.

MIT License

Downloads
7
Stars
6
Committers
3

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!

๐Ÿš€ 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.

๐Ÿซก Contributors

๐ŸŒ Social Links

โš–๏ธ License

Package Rankings
Top 35.6% on Packagist.org
Badges
Extracted from project README
Conventional Commits Licence