PHPackages                             phpmake/phpmake - 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. phpmake/phpmake

ActiveLibrary

phpmake/phpmake
===============

A PHP build automation tool using JSON configuration file.

2.0.1(5mo ago)3603GPL-3.0-onlyPHPPHP 8.3.\*CI passing

Since May 19Pushed 4mo ago2 watchersCompare

[ Source](https://github.com/phpmake/phpmake)[ Packagist](https://packagist.org/packages/phpmake/phpmake)[ Docs](https://github.com/phpmake/phpmake)[ RSS](/packages/phpmake-phpmake/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (7)Versions (5)Used By (0)

[PHPMake](https://github.com/phpmake/phpmake/)
==============================================

[](#phpmake)

A PHP build automation tool using JSON configuration file.

[![current version](https://camo.githubusercontent.com/58a1d9741eae0ec5381a4138ccb2445abb0f6c33bf2d1572fa41332375f10897/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7068706d616b652f7068706d616b652e737667)](https://packagist.org/packages/phpmake/phpmake) [![Build and Test](https://github.com/phpmake/phpmake/actions/workflows/default.yml/badge.svg?branch=main)](https://github.com/phpmake/phpmake/actions/workflows/default.yml) [![CodeQL](https://github.com/phpmake/phpmake/actions/workflows/github-code-scanning/codeql/badge.svg?branch=main)](https://github.com/phpmake/phpmake/actions/workflows/github-code-scanning/codeql) [![Dependabot Updates](https://github.com/phpmake/phpmake/actions/workflows/dependabot/dependabot-updates/badge.svg?branch=main)](https://github.com/phpmake/phpmake/actions/workflows/dependabot/dependabot-updates)[![PHP](https://camo.githubusercontent.com/519e3a6df54f141519a31aebf1a30333171234faf2bc32fec271825ea3db3800/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332d363137434245)](https://php.net/) [![issues](https://camo.githubusercontent.com/ae465602da3dddbe570f8493ccacdc287a14a543642e6e03b9734cfeea3556f7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f7068706d616b652f7068706d616b65)](https://github.com/phpmake/phpmake/issues) [![repo size](https://camo.githubusercontent.com/9c877637ddfe3f270cdfcd25402c80cc37dec15b2d6cfdb61ea18383d0604abc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f7068706d616b652f7068706d616b65)](https://camo.githubusercontent.com/9c877637ddfe3f270cdfcd25402c80cc37dec15b2d6cfdb61ea18383d0604abc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f7068706d616b652f7068706d616b65) [![GitHub license](https://camo.githubusercontent.com/28dd64e08b21e2e15017fbc20dd66712b76667077672f6c7c769e0e05ef9f8e2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7068706d616b652f7068706d616b65)](LICENSE) [![contributions welcome](https://camo.githubusercontent.com/382079383bf5ec051cfa878df7b3d9a70a5f5052e573c67033d4d3f7e376a6d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e737667)](CONTRIBUTING.txt)

[![Logo](resources/images/logo.png)](resources/images/logo.png)

Contents
--------

[](#contents)

- [Overview](#overview)
- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)
- [FAQ](#faq)
- [Support](#support)
- [Changelog](#changelog)
- [ToDo](#todo)
- [Contributing](#contributing)
- [Code of Conduct](#code-of-conduct)
- [DCO](#dco)
- [Contributors](#contributors)
- [Notice](#notice)
- [License](#license)

Overview
--------

[](#overview)

A lightweight PHP-based build automation tool inspired by Linux Make &amp; Apache Ant, using JSON configuration files. It supports common tasks like file operations, command execution, and dependency management with cross-platform compatibility. (Windows/Linux/macOS)

PHPMake is a well-architected, modern PHP build tool that follows best practices in design and implementation. Its modular structure, good testing, and clean API make it both robust and extendable.

Features
--------

[](#features)

- No dependency-hell and even dependency-free!
- Define build processes in human-readable JSON
- Specify execution order with dependencies
- Works on Microsoft Windows &amp; GNU+Linux
- Built-in tasks:
    - `create_directory` (create directories)
    - `delete` (remove files/directories)
    - `copy` (file/directory copying)
    - `exec` (execute shell commands)
    - `echo` (output messages)
    - `archive` (archive/compress a file or directory)
- Logging options:
    - `-d`/`--debug` for detailed logs
    - `--no-log` to disable file logging
    - `-s`/`--silent` for minimal output
- `--validate-build` to check configuration syntax
- `--diagnostics` to show environment info
- CI/CD pipeline integration
- 7.4 &amp; 8.3
- Microsoft Windows, GNU+Linux, Apple MacOS

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

[](#requirements)

1. PHP &gt;= 8.3
2. Composer &gt;= 2

### Versions

[](#versions)

Package versionBranchPHP versionStatusdev-main`main`8.3Active2.\*`main`8.3Active1.\*`main-php7.4`7.4Maintenance- **Active**: Full support
- **Maintenance**: Bug/Security fixes only
- **EOL**: Unsupported

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

[](#installation)

By [Composer](https://getcomposer.org/) project-specific installation:

```
composer require --dev phpmake/phpmake
```

By [Composer](https://getcomposer.org/) global installation:

```
composer global require phpmake/phpmake
```

Usage
-----

[](#usage)

1. **Create a `build.json` file**:

    ```
    {
        "name": "MyProject",
        "description": "Sample project build configuration",
        "version": "2.0.1",
        "targets": {
            "clean": {
                "tasks": [{ "type": "delete", "params": { "path": "build" } }]
            },
            "build": {
                "depends": ["clean"],
                "tasks": [
                    { "type": "create_directory", "params": { "name": "build" } },
                    { "type": "copy", "params": { "source": "src/", "dest": "build/" } },
                    { "type": "exec", "params": { "command": "php compiler.php" } }
                ]
            }
        },
        "default_target": "build"
    }
    ```
2. **Run the builder**:

For GNU+Linux:

```
chmod +x bin/phpmake.php
```

Then

```
vendor/bin/phpmake
```

Or

```
php vendor/bin/phpmake
```

Or

```
# Validate configuration.
php vendor/bin/phpmake --validate

# Run default target with debug logging.
php vendor/bin/phpmake --debug
```

Or

```
# Run test target silently.
php vendor/bin/phpmake test --silent
```

### QA/QC test

[](#qaqc-test)

Run tests to ensure everything works as expected:

```
composer test
```

Or

```
vendor/bin/phpunit tests/
```

### Commands

[](#commands)

CommandDescription`phpmake`Run default target`phpmake `Run specific target`phpmake --help`Show help menu`phpmake --version`Show PHPMake version`phpmake --validate`Validate build file`phpmake --diagnostics`Show system information`phpmake -d/--debug`Enable debug/verbose logging`phpmake -nl--no-log`Disable file logging`phpmake -s/--silent`Suppress console output`phpmake --init`Create sample build.json file### Supported tasks

[](#supported-tasks)

Task typeParametersDescription`create_directory``name` (string)Create directory`delete``path` (string)Delete file/directory`copy``source` (string), `dest` (string)Copy files/directories`exec``command` (string)Execute shell command`echo``message` (string)Output message`archive``dir` (string)Archive a directory### Example build file

[](#example-build-file)

See [build.json.example](build.json.example) file.

FAQ
---

[](#faq)

See [FAQ.txt](FAQ.txt) file.

Support
-------

[](#support)

For any question, issues and feature requests, [open an issue.](https://github.com/phpmake/phpmake/issues).

Changelog
---------

[](#changelog)

See [CHANGELOG.txt](CHANGELOG.txt) file.

ToDo
----

[](#todo)

See [TODO.txt](TODO.txt) file.

Contributing
------------

[](#contributing)

Contributions are welcome! Please follow these steps:

1. Fork repository.
2. Create a new branch for your feature or bugfix.
3. Submit a pull request with a detailed description of your changes.

For more details see [CONTRIBUTING.txt](CONTRIBUTING.txt).

Code of Conduct
---------------

[](#code-of-conduct)

See [CODE\_OF\_CONDUCT.txt](CODE_OF_CONDUCT.txt) file.

DCO
---

[](#dco)

See [DCO.txt](DCO.txt) file.

Contributors
------------

[](#contributors)

See [CONTRIBUTORS.txt](CONTRIBUTORS.txt) file.

Notice
------

[](#notice)

See [NOTICE.txt](NOTICE.txt) file.

License
-------

[](#license)

This open-source software is distributed under the GPL-3.0 license. See [LICENSE](LICENSE) file.

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance74

Regular maintenance activity

Popularity14

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.8% 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 ~107 days

Total

3

Last Release

150d ago

Major Versions

1.0.0 → 2.0.02025-05-19

PHP version history (2 changes)1.0.0PHP 7.4.\*

2.0.0PHP 8.3.\*

### Community

Maintainers

![](https://www.gravatar.com/avatar/48c39a321172557d0570fd70d2a2cbc73524f858126b68c63432925674be2ffc?d=identicon)[phpmake](/maintainers/phpmake)

---

Top Contributors

[![phpmake](https://avatars.githubusercontent.com/u/209348968?v=4)](https://github.com/phpmake "phpmake (53 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (16 commits)")

---

Tags

buildbuild-automationbuildermakemakerphpphpbuildermakebuildmakerbuild-automation

###  Code Quality

TestsPHPUnit

Static AnalysisRector

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/phpmake-phpmake/health.svg)

```
[![Health](https://phpackages.com/badges/phpmake-phpmake/health.svg)](https://phpackages.com/packages/phpmake-phpmake)
```

###  Alternatives

[phing/phing

PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.

1.2k21.7M876](/packages/phing-phing)[godbout/dash-docset-builder

Dash (LOVE) Docset Builder in PHP (LOVE).

1253.5k](/packages/godbout-dash-docset-builder)

PHPackages © 2026

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