PHPackages                             ingenioz-it/php-skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. ingenioz-it/php-skeleton

ActiveProject[Testing &amp; Quality](/categories/testing)

ingenioz-it/php-skeleton
========================

A clean new PHP project

v2.1.0(7mo ago)728MITMakefilePHP &gt;=8.5CI passing

Since Apr 8Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/IngeniozIT/php-skeleton)[ Packagist](https://packagist.org/packages/ingenioz-it/php-skeleton)[ RSS](/packages/ingenioz-it-php-skeleton/feed)WikiDiscussions master Synced today

READMEChangelog (9)Dependencies (6)Versions (10)Used By (0)

PHP skeleton
============

[](#php-skeleton)

> Bored of manually setting up your PHP projects ?
> This is the solution !

Table of contents
-----------------

[](#table-of-contents)

- [Description](#description)
- [Installation](#installation)
- [Requirements](#requirements)
- [Getting started](#getting-started)
- [Scripts](#scripts)
- [Customize your app](#customize-your-app)

Description
-----------

[](#description)

This is a skeleton for PHP projects that focus on **code quality**.
It contains pretty much everything you need to start a new project :

- **Code quality**
    - A working unit test (using [PHPUnit](https://github.com/sebastianbergmann/phpunit)) to bootstrap your coding experience
    - A mutation testing framework ([Infection](https://github.com/infection/infection)) to enforce the quality of your tests
    - A linter ([phpcs](https://github.com/squizlabs/PHP_CodeSniffer)) to make sure your code respects the PSR standards
    - Static analysis ([phpstan](https://github.com/phpstan/phpstan)) to check for errors
    - Code smell check ([phpmd](https://github.com/phpmd/phpmd)) to check if your code needs improvement
    - An automated refactoring tool ([Rector](https://github.com/rectorphp/rector)) to help you keep your code up to date
    - Composer scripts to easily use all the above
- **Infrastructure**
    - Docker support
        - A Makefile to manage docker commands with ease
    - GitHub Actions to automatically run the tests and quality tools on every push and pull request
        - It also uploads a code coverage report to [CodeCov](https://codecov.io/)

Installation
------------

[](#installation)

To create a new project based on this skeleton, run the following command:

```
composer create-project ingenioz-it/php-skeleton {PROJECT_NAME}
```

Requirements
------------

[](#requirements)

PHP 8.5+ or Docker.

Getting started
---------------

[](#getting-started)

### 1. Install the dependencies

[](#1-install-the-dependencies)

If you are using docker:

```
make install
```

If you are using your local environment:

```
composer install
```

### 2. Run the tests

[](#2-run-the-tests)

If you are using docker:

```
make test
```

If you are using your local environment:

```
composer fulltest
```

### 3. Time to code

[](#3-time-to-code)

The previous steps went well ?

**You are now ready to start coding !**

Scripts
-------

[](#scripts)

The project comes with a few useful scripts to help you manage docker and run the various quality tools.

You can list them by running

```
make help
```

### Important scripts

[](#important-scripts)

For a complete list of the available commands:

```
make help
```

The main scripts are:

- `composer testdox`: run the tests
- `composer fulltest`: run all the quality tools
- `composer doc`: generate the documentation from the tests (including mutation testing and code coverage), and puts it inside the `doc` folder

And if you are using docker:

- `make start/stop/restart`: start/stop/restart the Docker container
- `make bash`: open a terminal inside the Docker container (run `exit` to close it)
- `make exec -- {command}`: execute a command inside the Docker container

Environments
------------

[](#environments)

This project supports multiple environments.

Two environments are available from the start:

- `cli-dev`: a cli project
- `web-dev`: a web project

You can switch between environments by changing the `ENVIRONMENT` variable inside the `infra/.env` file.

You can create new environments by creating a new folder inside the `infra/` folder, with a `docker-compose.yml` file inside it.

Customize your app
------------------

[](#customize-your-app)

Make the project truly yours by doing the following:

- Update the `composer.json` with your project's information
- Update the `README.md` file to describe your project
- Update the `LICENSE` file with your favorite license

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance64

Regular maintenance activity

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~120 days

Recently: every ~230 days

Total

9

Last Release

219d ago

Major Versions

v1.3.0 → v2.02025-09-23

PHP version history (3 changes)v1.0.0PHP &gt;=8.2

v2.0PHP &gt;=8.4

v2.1.0PHP &gt;=8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/167b1b0644440255e02a195b70b29024f6dff62bf886c7450553dc13d354a95b?d=identicon)[Ingenioz IT](/maintainers/Ingenioz%20IT)

---

Top Contributors

[![IngeniozIT](https://avatars.githubusercontent.com/u/41050198?v=4)](https://github.com/IngeniozIT "IngeniozIT (27 commits)")

---

Tags

clean-codephpskeletontesting

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ingenioz-it-php-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/ingenioz-it-php-skeleton/health.svg)](https://phpackages.com/packages/ingenioz-it-php-skeleton)
```

###  Alternatives

[dms/phpunit-arraysubset-asserts

This package provides ArraySubset and related asserts once deprecated in PHPUnit 8

14429.2M360](/packages/dms-phpunit-arraysubset-asserts)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
