PHPackages                             eureka/component-deployer - 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. eureka/component-deployer

ActiveProject

eureka/component-deployer
=========================

PHP Installer &amp; Deployer for projects based on Eureka Framework

4.0.0(4mo ago)1390MITPHPPHP &gt;=8.3CI passing

Since Oct 14Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/eureka-framework/component-deployer)[ Packagist](https://packagist.org/packages/eureka/component-deployer)[ RSS](/packages/eureka-component-deployer/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (8)Dependencies (8)Versions (15)Used By (0)

component-deployer
==================

[](#component-deployer)

[![Current version](https://camo.githubusercontent.com/5fac4ae344fb59b4fe4e1619135aea62154d2f0f186bb227ed75022c1d55509e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f657572656b612f636f6d706f6e656e742d6465706c6f7965722e7376673f6c6f676f3d636f6d706f736572)](https://packagist.org/packages/eureka/component-deployer)[![Supported PHP version](https://camo.githubusercontent.com/a6226f5200fbd8ca1dda8d38f953e4bc2be89e2ef5b9d38d66f014f9b4a3a121/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6f676f3d706870266c6162656c3d504850266d6573736167653d253345253344382e3326636f6c6f723d373737626234)](https://packagist.org/packages/eureka/component-deployer)[![CI](https://github.com/eureka-framework/component-deployer/workflows/CI/badge.svg)](https://github.com/eureka-framework/component-deployer/workflows/CI/badge.svg)[![Quality Gate Status](https://camo.githubusercontent.com/284954f8c882913b84e3146fe30c30ac0f76b659f95936fee17f35a82d2b4710/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d657572656b612d6672616d65776f726b5f636f6d706f6e656e742d6465706c6f796572266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/dashboard?id=eureka-framework_component-deployer)[![Coverage](https://camo.githubusercontent.com/f3f1c237dcba1b74d7b9a2f21a4a7cc30132cb65cc27a16181a8f60efb4de994/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d657572656b612d6672616d65776f726b5f636f6d706f6e656e742d6465706c6f796572266d65747269633d636f766572616765)](https://sonarcloud.io/dashboard?id=eureka-framework_component-deployer)

PHP Installer &amp; Deployer for projects based on Eureka Framework

Composer
--------

[](#composer)

```
composer require "eureka/component-deployer"
```

Usage
-----

[](#usage)

### Symfony config for dependency injections in scripts

[](#symfony-config-for-dependency-injections-in-scripts)

```
parameters:

  eureka.deployer.dir.src:  '/path/to/src'  # where the sources will be installed
  eureka.deployer.dir.www:  '/path/to/www'  # where the symlink on source will be put (link to use in apache/nginx conf)
  eureka.deployer.dir.conf: '/path/to/conf' # where the config with prod secrets are stored

  eureka.deployer.config:
    # Default values
    app.name:   '%app.name%'
    app.tag:    '%app.version%'
    app.domain: 'www.%app.name%.com'

    install:
      #~ Installation steps
      step.start: 0
      step.end:   100

      step.list:
        #~ 0: Start Install (defined in main installation script)
        #~ 1 to 9: reserved for deployed itself
        #~  1: Install composer
        #~  2: Copy secrets files

        #~ Setup some directories
        10: 'Install/Init/Directories'
        11: 'Install/Init/Symlink'

        #~ Yarn / npm
        40: 'Install/Yarn/Install'
        41: 'Install/Yarn/EncoreBuild'

        #~ Cleaning installation files
        70: 'Install/Clean/Files'

        #~ Composer cleaning & install no-dev
        #80: 'Install/Clean/Cache'

        #~ 90 to 99: reserved for deployed itself

        #~  98: Clean cache
        #~  99: Init directory again for production
        #~ 100: Ending installation (defined in main installation script)

      init:
        directories:
          'var/log':   777
          'var/cache': 777

        symlinks:
          '/path/to/upload/': 'web/upload'

      copy:
        #~ list of files to copy, with the format "from: to"
        files:
          '/path/to/conf/{platform}/{domain}/app.yaml':      'config/secrets/app.yaml'
          '/path/to/conf/{platform}/{domain}/database.yaml': 'config/secrets/database.yaml'

      clean:
        files:
          - '.gitignore'
          - 'composer.lock'
          - 'package.json'
          - 'README.md'
          - 'webpack.config.js'
          - 'yarn.lock'
          - 'yarn-error.log'

        directories:
          - 'assets/'
          - 'node_modules/'
          - 'sql/'

services:
  _defaults:
    autowire: true

  Eureka\Component\Deployer\:
    resource: '../../vendor/eureka/component-deployer/src/*'
    exclude:  '../../vendor/eureka/component-deployer/src/{Script}'

  Eureka\Component\Deployer\Script\:
    resource: '../../vendor/eureka/component-deployer/src/Script/*'
    public: true
    calls:
      - setPathBuilder: [ '@Eureka\Component\Deployer\Common\PathBuilder']
      - setRootDir:     [ '%kernel.directory.root%' ]
      - setConfig:      [ '%eureka.deployer.config%' ]

  Eureka\Component\Deployer\Common\PathBuilder:
    arguments:
      $pathSource: '%eureka.deployer.dir.src%'
      $pathLink:   '%eureka.deployer.dir.www%'
```

### Console command (in you application)

[](#console-command-in-you-application)

```
~/my-app/$ bin/console deploy --help

Use    :
php  Eureka\Component\Deployer\Script\Deploy [OPTION]...
OPTIONS:
  -h,     --help                        Reserved - Display Help
  -p ARG, --platform=ARG                Platform where installation is executed (default: "prod")
  -t ARG, --tag=ARG                     Tag version to install (default from config or 1.0.0 if not defined in config)
  -d ARG, --domain=ARG                  Application domain (ie: www.my-app.com) (default from config)
  -n ARG, --name=ARG                    Application name, used to retrieve config (default from config)
```

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

[](#contributing)

See the [CONTRIBUTING](CONTRIBUTING.md) file.

### Install / update project

[](#install--update-project)

You can install project with the following command:

```
make install
```

And update with the following command:

```
make update
```

NB: For the components, the `composer.lock` file is not committed.

### Testing &amp; CI (Continuous Integration)

[](#testing--ci-continuous-integration)

#### Tests

[](#tests)

You can run unit tests (with coverage) on your side with following command:

```
make php/tests
```

You can run integration tests (without coverage) on your side with following command:

```
make php/integration
```

For prettier output (but without coverage), you can use the following command:

```
make php/testdox # run tests without coverage reports but with prettified output
```

#### Code Style

[](#code-style)

You also can run code style check with following commands:

```
make php/check
```

You also can run code style fixes with following commands:

```
make php/fix
```

#### Check for missing explicit dependencies

[](#check-for-missing-explicit-dependencies)

You can check if any explicit dependency is missing with the following command:

```
make php/deps
```

#### Static Analysis

[](#static-analysis)

To perform a static analyze of your code (with phpstan, lvl 9 at default), you can use the following command:

```
make php/analyse
```

To ensure you code still compatible with current supported version at Deezer and futures versions of php, you need to run the following commands (both are required for full support):

Minimal supported version:

```
make php/min-compatibility
```

Maximal supported version:

```
make php/max-compatibility
```

#### CI Simulation

[](#ci-simulation)

And the last "helper" commands, you can run before commit and push, is:

```
make ci
```

License
-------

[](#license)

This project is currently under The MIT License (MIT). See [LICENCE](LICENSE) file for more information.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance76

Regular maintenance activity

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity80

Battle-tested with a long release history

 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 ~227 days

Recently: every ~463 days

Total

11

Last Release

130d ago

Major Versions

0.3.0 → 1.0.02020-10-30

1.3.0 → 2.0.02022-11-13

2.1.0 → 3.0.02024-03-18

3.0.0 → 4.0.02026-01-05

PHP version history (5 changes)1.0.0PHP &gt;=7.4.0

2.0.0PHP 7.4.\*|8.0.\*|8.1.\*

2.1.0PHP 7.4.\*||8.0.\*||8.1.\*||8.2.\*

3.0.0PHP 8.1.\*||8.2.\*||8.3.\*

4.0.0PHP &gt;=8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/32b285e5380f18e43bbdd09a14b7098534c1869cf2cb3fc58140e37c8bd10671?d=identicon)[velkuns](/maintainers/velkuns)

---

Top Contributors

[![velkuns](https://avatars.githubusercontent.com/u/503648?v=4)](https://github.com/velkuns "velkuns (5 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/eureka-component-deployer/health.svg)

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

PHPackages © 2026

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