An application skeleton for modern PHP projects, PoC, side-projects...
[TOC]
This repository contains an application skeleton following best practices.
- Minimalist project
- Includes frequently used tools such as a Linter, PHPStan, PHPUnit, CodeSniffer and VarDumper.
To use this repository you need:
- Git - The free and open source distributed version control system.
This project was built with Dockerized PHP, a lightweight dockerized environment to build PHP applications.
Just clone the repository into your preferred path:
$ mkdir -p ~/path/to/my-new-project && cd ~/path/to/my-new-project $ git clone git@github.com:alcidesrc/php-skeleton.git .. ├── app # Your application business logic goes here ├── composer.json # Application dependencies main file ├── composer.lock # Application dependencies locked file ├── LICENSE ├── Makefile ├── phpcs.xml # PHPCS configuration file ├── phpstan.neon # PHPStan configuration file ├── phpunit.xml # PHPUnit configuration file ├── public # Public folder ├── README.md ├── tests # Tests folder └── vendor Custom commands are added to composer.json under the scripts section.
| Command | Description |
|---|---|
linter | Runs the linter in parallel mode |
phpcs | Runs PHP Check Style command following the PSR-12 |
phpcbf | Runs PHP Code Beautifier and Fixer command following the PSR-12 |
phpstan | Runs PHPStan with the specs defined at phpstan.neon configuration file |
phpunit | Runs PHPUnit with the specs defined at phpunit.xml configuration file |
tests | Runs PHPUnit without code coverage support |
coverage | Runs PHPUnit with PCOV code coverage support |
Additionally a Makefile is provided with frequently used commands:
~/path/to/my-new-project$ make ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ .: AVAILABLE COMMANDS :. ║ ║ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════╝ · composer-dump Composer: executes <composer dump-auto> inside the container · composer-install Composer: executes <composer install> inside the container · composer-remove Composer: executes <composer remove> inside the container · composer-require-dev Composer: executes <composer require --dev> inside the container · composer-require Composer: executes <composer require> inside the container · composer-update Composer: executes <composer update> inside the container · check-syntax QA: executes <check-syntax> inside the container · check-style QA: executes <check-style> inside the container · fix-style QA: executes <fix-style> inside the container · phpstan QA: executes <composer phpstan> inside the container · test QA: executes <composer paratest> inside the container · coverage QA: executes <composer paracoverage> inside the container $ make composer-install$ make testCoverage report in HTML is generated on a root folder /.coverage
Tip
If you want the report is generated on a different path, just update accordingly the composer.json file under the section scripts
Please review our security policy on how to report security vulnerabilities:
PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY
Only the latest major version receives security fixes.
If you discover a security vulnerability within this project, please open an issue here. All security vulnerabilities will be promptly addressed.
The MIT License (MIT). Please see LICENSE file for more information.