PHPackages                             pierre-arthur/sylius-upgrade-analyzer - 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. [Database &amp; ORM](/categories/database)
4. /
5. pierre-arthur/sylius-upgrade-analyzer

ActiveLibrary[Database &amp; ORM](/categories/database)

pierre-arthur/sylius-upgrade-analyzer
=====================================

Outil CLI d'audit automatisé de migration pour projets Sylius 1.x vers 2.x

v1.5.0(2mo ago)6431MITPHPPHP &gt;=8.2CI passing

Since Apr 4Pushed 2mo agoCompare

[ Source](https://github.com/pierrearthurdemengel/sylius-upgrade-analyzer)[ Packagist](https://packagist.org/packages/pierre-arthur/sylius-upgrade-analyzer)[ RSS](/packages/pierre-arthur-sylius-upgrade-analyzer/feed)WikiDiscussions main Synced today

READMEChangelog (6)Dependencies (20)Versions (27)Used By (0)

Sylius Upgrade Analyzer
=======================

[](#sylius-upgrade-analyzer)

[![Packagist Version](https://camo.githubusercontent.com/ec33ca398ec49c29f8559e8a50606a4a3fc2b9f0febd4336945b3e052b33d3b1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7069657272652d6172746875722f73796c6975732d757067726164652d616e616c797a6572)](https://packagist.org/packages/pierre-arthur/sylius-upgrade-analyzer)[![PHP Version](https://camo.githubusercontent.com/ccec07e2fb4497986c7fce7133ca74b058075ccb1e5533b9ccf81da5abfe9797/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7069657272652d6172746875722f73796c6975732d757067726164652d616e616c797a6572)](https://packagist.org/packages/pierre-arthur/sylius-upgrade-analyzer)[![Symfony Version](https://camo.githubusercontent.com/bac0e13abd7fc0dc8435238e356d321a58b9e6bfbfe8a5a12bfd2b25bee4a0a2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73796d666f6e792d362e34253230253743253230372e322d626c7565)](https://symfony.com)[![CI](https://github.com/pierrearthurdemengel/sylius-upgrade-analyzer/actions/workflows/ci.yaml/badge.svg)](https://github.com/pierrearthurdemengel/sylius-upgrade-analyzer/actions/workflows/ci.yaml)[![License](https://camo.githubusercontent.com/e70440544e26a9faf72612c37912d294cf93942d637fa6774de3f7dc399414cc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7069657272652d6172746875722f73796c6975732d757067726164652d616e616c797a6572)](LICENSE)

**Automated migration audit &amp; auto-fix CLI for Sylius 1.x to 2.x projects.**

Sylius Upgrade Analyzer scans your existing Sylius 1.x project, detects **every** breaking change, deprecated API, and incompatible pattern, then produces a detailed migration report with time estimates, fix suggestions, and **45 automatic corrections** covering the most common migration tasks.

Coverage is built from the official [UPGRADE-2.0.md](https://github.com/Sylius/Sylius/blob/2.0/UPGRADE-2.0.md), [UPGRADE-API-2.0.md](https://github.com/Sylius/Sylius/blob/2.1/UPGRADE-API-2.0.md), and [CHANGELOG-2.0.md](https://github.com/Sylius/Sylius/blob/2.1/CHANGELOG-2.0.md). Nothing is left unchecked.

**Web service available at [sylius-upgrade-analyzer.dev](https://sylius-upgrade-analyzer.dev)** -- upload your `composer.json`, get a professional PDF report with time estimates and migration roadmap.

---

Features
--------

[](#features)

### 49 Built-in Analyzers

[](#49-built-in-analyzers)

#### Templates &amp; Frontend (6)

[](#templates--frontend-6)

\#AnalyzerWhat it detects1Twig Template OverrideOverridden Sylius templates to migrate to Twig Hooks2Sonata Block Event`sonata_block_render_event()` / `sylius_template_event()` to replace with `hook()`3Semantic UISemantic UI CSS classes in templates (removed in 2.x)4jQueryjQuery / Semantic UI JS usage in assets5Webpack Encore`webpack.config.js` + `@symfony/webpack-encore` detection6Use Webpack ConfigRemoved `use_webpack` from `sylius_ui` config#### Deprecations &amp; Breaking Changes (35)

[](#deprecations--breaking-changes-35)

\#AnalyzerWhat it detects7Winzou State Machinewinzou/state-machine-bundle to Symfony Workflow8SwiftMailerswiftmailer/swiftmailer to symfony/mailer9User Encoder`security.encoders` and `getSalt()` methods10PayumPayum gateway to Payment Requests11Message Bus Rename`sylius_default.bus` / `sylius_event.bus` renames12Command Handler Rename`src/Message/` to `src/Command/`13Deprecated Email ManagerRemoved OrderEmailManager / ContactEmailManager14Removed Payment GatewayStripe / PayPal Express removed from core15Service DecoratorDecorators targeting renamed Sylius services16Order Processor PriorityPriority conflicts (40-60 range)17Form Type Extension PriorityMissing explicit priorities18Behat Context Deprecation10+ deprecated Behat contexts19Admin Menu EventEvent-based admin menu system changes20Translation KeyRenamed `sylius.ui.*` / `sylius.form.*` / `sylius.email.*` keys21Promotion Rule CheckerPromotionRuleCheckerInterface changes22Shipping CalculatorCalculatorInterface changes23Doctrine XML Mapping`*.orm.xml` to PHP attribute migration24Custom FixtureFixture system changes25Multi-Store Channel`findOneByHostname` deprecation, locale contexts26Bundle Configuration7 removed bundles + 6 required new bundles in `bundles.php`27Calendar to Clock`sylius/calendar` to `symfony/clock` (`ClockInterface`)28Security Firewall`new_api_admin_user` / `new_api_shop_user` firewall renames29User Model FieldRemoved `locked`, `expiresAt`, `credentialsExpireAt`, `\Serializable`30Removed Class150+ removed classes (Templating Helpers, UiBundle, DataCollectors, etc.)31Renamed Service ID21 renamed/removed Sylius service IDs32Removed Route43 removed admin/shop routes (partials, AJAX, etc.)33LiipImagine ConfigResolver/loader `"default"` to `"sylius_image"`34Constructor Signature24 classes with changed constructor signatures35PHP Node VersionPHP 8.2+, Node.js 20+, Symfony 5.4 detection36Class Move14 classes moved between bundles37Service VisibilityDirect `$container->get('sylius.*')` calls (now private)38Payment Request EnvMissing Messenger transport env vars for payments39Deprecated Bundle Package7 removed packages (FOSRest, JMSSerializer, BazingaHateoas, etc.)40Removed Config KeyRemoved YAML config keys (`sylius_core.*`, `sylius_api.*`, MongoDB/PHPCR ODM)41Routing ImportLegacy routing imports (Payum shop routes, API route parameter renames)#### Plugins (1)

[](#plugins-1)

\#AnalyzerWhat it detects42Plugin CompatibilitySylius plugins cross-referenced with Addons Marketplace + Packagist#### Grid &amp; Resource (3)

[](#grid--resource-3)

\#AnalyzerWhat it detects43Grid CustomizationCustom grid YAML + PHP grid classes + custom columns/filters44Resource BundleSyliusResourceBundle config, custom factories/repositories45Grid Filter Entity`type: entities` to `type: entity`, `field:` to `fields:` syntax#### API Platform (4)

[](#api-platform-4)

\#AnalyzerWhat it detects46API Platform Migration@ApiResource, DataProvider/DataPersister, ApiPlatform\\Core namespace47API Serialization GroupMissing `sylius:` prefix on serialization groups48API Endpoint Restructure8+ restructured/removed API endpoint paths49API Query Extension Signature`$operationName` to `Operation $operation` parameter change### 6 Output Reporters

[](#6-output-reporters)

- **Console** -- Rich terminal output with ASCII gauge, colored severity levels, category breakdown
- **JSON** -- Machine-readable structured report
- **CSV** -- Excel-compatible export (UTF-8 BOM, semicolon separator) via `--format=csv`
- **SARIF** -- Static Analysis Results Interchange Format (GitHub Code Scanning compatible)
- **Markdown** -- Human-readable report with tables, suitable for PRs and wikis
- **PDF** -- Professional report for stakeholders (via [sylius-upgrade-analyzer.dev](https://sylius-upgrade-analyzer.dev))

### 45 Auto-Fixers

[](#45-auto-fixers)

FixerConfidenceWhat it fixesTwig Hook FixerHIGHGenerates `sylius_twig_hooks` YAML config for template overridesWorkflow Migration FixerMEDIUMConverts winzou state machine YAML to Symfony Workflow configSecurity Config FixerHIGHReplaces `security.encoders` with `security.password_hashers` and simplifies `getSalt()`Message Bus FixerHIGHRenames bus references in YAML and PHP filesCommand Handler FixerHIGHUpdates namespaces from `Message\` to `Command\`SwiftMailer FixerHIGHConverts `Swift_Message` to `Email`, `Swift_Attachment` to `DataPart`, updates YAML configRenamed Service ID FixerHIGHReplaces 11 old Sylius service IDs + 2 prefix renames in YAMLSecurity Firewall FixerHIGHRenames `new_api_admin_user` → `api_admin`, `new_api_shop_user` → `api_shop`LiipImagine Config FixerHIGHReplaces resolver/loader `"default"` with `"sylius_image"`Sonata Block Event FixerMEDIUMReplaces `sonata_block_render_event()` / `sylius_template_event()` with `hook()`Grid Filter Entity FixerHIGHReplaces `type: entities` with `type: entity` in grid YAMLUse Webpack Config FixerHIGHRemoves `use_webpack` from `sylius_ui` YAML config and Twig conditionalsCalendar to Clock FixerHIGHReplaces `DateTimeProviderInterface` → `ClockInterface`, `sylius/calendar` → `symfony/clock`Class Move FixerHIGHUpdates 9 moved FQCN references between Sylius bundlesRemoved Class FixerMEDIUMComments out `use` statements for 150+ removed classes with TODO markersBundle Config FixerHIGHRemoves 7 deprecated bundles and adds 5 required new bundles in `bundles.php`Deprecated Bundle Package FixerHIGHRemoves 6 deprecated packages from `composer.json`User Encoder FixerHIGHYAML: `encoders` → `password_hashers` + algorithm; PHP: `getSalt()` → `return null`API Endpoint Restructure FixerHIGHReplaces 3 restructured API endpoint pathsRemoved Route FixerMEDIUMComments removed route references in PHP and Twig with TODO markersPayment Request Env FixerHIGHAdds 2 required Messenger transport env vars to `.env`Routing Import FixerHIGHReplaces 7 old routing imports and parameter namesRemoved Config Key FixerHIGHComments 7 removed YAML config keys with TODO markersTranslation Key FixerMEDIUMReplaces 5 renamed translation key prefixes (`sylius.ui.admin` → `sylius.admin`, etc.)Behat Context FixerMEDIUMRenames deprecated Behat context classesAPI Serialization Group FixerMEDIUMAdds `sylius:` prefix to 4 serialization group pairsAPI Query Extension Signature FixerMEDIUMUpdates `$operationName` → `Operation $operation` parameter + use statementForm Type Extension Priority FixerMEDIUMAdds `getPriority()` method when `getExtendedTypes()` existsOrder Processor Priority FixerMEDIUMAdds `priority` in YAML tags + `getPriority()` in PHPDeprecated Email Manager FixerMEDIUMReplaces 4 deprecated email manager interface FQCNsAdmin Menu Event FixerMEDIUMReplaces 3 old admin menu event namesService Decorator FixerMEDIUMUpdates `decorates:` with renamed controller service prefixesRemoved Payment Gateway FixerMEDIUMComments `stripe_checkout` and `paypal_express_checkout` configsShipping Calculator FixerMEDIUMReplaces `DelegatingCalculatorInterface` → `CalculatorInterface`Promotion Rule Checker FixerMEDIUMMoves `CartQuantityRuleChecker` from Promotion to Core namespacePayum Config FixerMEDIUMComments `payum:` YAML root key and Payum `use` statements in PHPGrid Customization FixerMEDIUMReplaces `field:` → `fields:` + `doctrine/orm` → `doctrine_orm`Resource Bundle FixerMEDIUMReplaces `doctrine/orm` driver format, comments PHPCR/MongoDB driversAPI Platform Migration FixerMEDIUMUpdates 7 namespace replacements (Core → Metadata/Symfony) + annotation → attributeMulti-Store Channel FixerHIGHReplaces `findOneByHostname()` with `findOneEnabledByHostname()`Constructor Signature FixerMEDIUMAdds TODO markers on overridden constructors of 24 changed Sylius classesUser Model Field FixerMEDIUMComments deprecated `locked`, `expiresAt`, `credentialsExpireAt` fields and `Serializable`Doctrine XML Mapping FixerLOWAdds TODO marker for `*.orm.xml` to PHP attribute conversion### GitHub Action

[](#github-action)

Run the analyzer in your CI pipeline, post PR comments, and upload SARIF to GitHub Code Scanning.

### Additional Features

[](#additional-features)

- **Custom rules** via `.sylius-upgrade-rules.yaml`
- **Baseline management** -- save and diff results across runs
- **Sprint planner** -- generate a migration roadmap with sprint breakdown
- **Plugin compatibility** -- checks Sylius Addons Marketplace and Packagist
- **Multi-project analysis** -- consolidated PDF for agencies managing multiple Sylius projects
- **Report comparison** -- diff two reports to track migration progress
- **Webhook notifications** -- get notified when a new report is generated

---

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

[](#installation)

```
composer require --dev pierre-arthur/sylius-upgrade-analyzer
```

Requirements: PHP 8.2+, Symfony 6.4 or 7.2.

---

Usage
-----

[](#usage)

### Basic Analysis

[](#basic-analysis)

```
# Analyze the current directory
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze

# Analyze a specific project
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze /path/to/sylius-project

# Target a specific Sylius version
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --target-version=2.2
```

### Output Formats

[](#output-formats)

```
# Console output (default)
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze

# JSON report
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --format=json --output=report.json

# SARIF report (for GitHub Code Scanning)
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --format=sarif --output=report.sarif

# Markdown report
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --format=markdown --output=report.md

# PDF report
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --pdf

# CSV export (Excel-compatible)
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --format=csv --output=report.csv
```

### Project Naming

[](#project-naming)

```
# Explicit project name (included in meta.project_name)
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --project-name="My Shop"

# Auto-detected from composer.json "name" field or directory name
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze
```

### Filtering Analyzers

[](#filtering-analyzers)

```
# Run only specific analyzers
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --only="Twig Template Override" --only="Payum"
```

### Verbose Output

[](#verbose-output)

```
# Show warnings
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze -v

# Show warnings and suggestions
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze -vv
```

### Offline Mode

[](#offline-mode)

```
# Skip marketplace compatibility checks
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --no-marketplace
```

### Custom Rules

[](#custom-rules)

```
# Use a custom rules file
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --rules=.sylius-upgrade-rules.yaml
```

### Baseline Management

[](#baseline-management)

```
# Save a baseline
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --save-baseline

# Compare with previous baseline
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --diff
```

### Sprint Planning

[](#sprint-planning)

```
# Generate a sprint plan with team velocity of 40h/sprint
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --sprint-plan --velocity=40
```

### Upload Report for PDF Generation

[](#upload-report-for-pdf-generation)

```
# Generate JSON first, then upload for PDF generation
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --format=json --output=report.json
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:upload report.json --api-key=sua_xxx --output=report.pdf
```

> **Tip:** You can also upload directly on [sylius-upgrade-analyzer.dev](https://sylius-upgrade-analyzer.dev) without an API key for a one-time report.

### Multi-Project Analysis (Agency)

[](#multi-project-analysis-agency)

```
# Analyze multiple projects and generate a consolidated PDF
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:multi-analyze \
  /path/to/project1 /path/to/project2 /path/to/project3 \
  --api-key=sua_agy_xxx --output=consolidated-report.pdf --tjm=600
```

### Compare Reports

[](#compare-reports)

```
# Compare two local JSON reports
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:compare before.json after.json

# Compare two reports via API (by report ID)
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:compare \
  --before-id=uuid1 --after-id=uuid2 --api-key=sua_agy_xxx
```

### Report History (Agency)

[](#report-history-agency)

```
# View past reports
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:history --api-key=sua_agy_xxx --limit=10
```

### Webhook Management (Agency)

[](#webhook-management-agency)

```
# View current webhook config
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:webhook get --api-key=sua_agy_xxx

# Set a webhook
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:webhook set \
  --url=https://hooks.example.com/migration --secret=mysecret --api-key=sua_agy_xxx

# Delete webhook
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:webhook delete --api-key=sua_agy_xxx
```

---

Auto-Fix
--------

[](#auto-fix)

The analyzer can automatically fix certain issues:

```
# Apply all available fixes
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --fix

# Preview fixes without modifying files
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:analyze --fix --dry-run
```

Each fix has a confidence level:

- **HIGH** -- Safe to apply automatically (e.g., renaming `security.encoders` to `security.password_hashers`)
- **MEDIUM** -- Likely correct but manual review recommended (e.g., workflow migration)
- **LOW** -- Uncertain, manual verification required

In `--dry-run` mode, the tool generates a unified diff patch showing what would change without writing any files.

---

GitHub Action
-------------

[](#github-action-1)

Add the analyzer to your CI workflow:

```
name: Sylius Migration Audit
on: [push, pull_request]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: pierrearthurdemengel/sylius-upgrade-analyzer@v1
        with:
          project-path: '.'
          target-version: '2.2'
          fail-on-breaking: 'true'
          upload-sarif: 'true'
          post-pr-comment: 'true'
```

### Action Inputs

[](#action-inputs)

InputDefaultDescription`project-path``.`Path to the Sylius project`target-version``2.2`Target Sylius version`fail-on-breaking``true`Fail the job if breaking issues are found`upload-sarif``false`Upload SARIF report to GitHub Code Scanning`post-pr-comment``false`Post a summary comment on the PR### Action Outputs

[](#action-outputs)

OutputDescription`complexity`Detected complexity level (trivial, moderate, complex, major)`total-hours`Estimated total hours`breaking-count`Number of breaking issues---

Custom Rules
------------

[](#custom-rules-1)

Create a `.sylius-upgrade-rules.yaml` file at the root of your project:

```
rules:
  - name: legacy_payment_service
    type: php_class_usage
    pattern: 'App\\Service\\LegacyPaymentService'
    severity: breaking
    category: deprecation
    message: 'Legacy payment service must be replaced'
    suggestion: 'Migrate to the new PaymentProcessor service'
    estimated_minutes: 120

  - name: old_twig_filter
    type: twig_function
    pattern: 'sylius_price_format'
    severity: warning
    category: twig
    message: 'Deprecated Twig filter detected'
    suggestion: 'Use the new money_format filter instead'
    estimated_minutes: 15
```

Supported rule types: `php_class_usage`, `php_method_call`, `twig_function`, `yaml_key`.

See [docs/custom-rules.md](docs/custom-rules.md) for the full reference.

---

Example Output
--------------

[](#example-output)

### Console

[](#console)

```
 Sylius Upgrade Analyzer - Migration Report
 ===========================================

 Projet        : /home/dev/my-sylius-shop
 Version       : 1.12.18
 Cible         : 2.2
 Date          : 04/04/2026 14:32:07

 Resume global
 -------------
   Problemes critiques (BREAKING) : 12
   Avertissements (WARNING) :        23
   Suggestions :                      8

   Temps total estime : 142.5 heures

   Complexite globale : COMPLEXE

   [████████████████████████████░░░░░░░░░░░░░] 142.5h / COMPLEX

 Estimation par categorie
 -------------------------
 +-----------------+--------------+-----------------+
 | Categorie       | Nb problemes | Heures estimees |
 +-----------------+--------------+-----------------+
 | Deprecations    | 18           | 64.0 h          |
 | Templates Twig  | 7            | 35.0 h          |
 | Front-end       | 6            | 24.0 h          |
 | Plugins         | 4            | 16.0 h          |
 | API             | 2            | 3.5 h           |
 +-----------------+--------------+-----------------+

```

### JSON

[](#json)

```
{
  "summary": {
    "complexity": "complex",
    "total_hours": 142.5,
    "breaking_count": 12,
    "warning_count": 23,
    "suggestion_count": 8,
    "detected_version": "1.12.18",
    "target_version": "2.2"
  },
  "hours_by_category": {
    "deprecation": 64.0,
    "twig": 35.0,
    "frontend": 24.0,
    "plugin": 16.0,
    "api": 3.5
  },
  "issues": [
    {
      "severity": "breaking",
      "category": "deprecation",
      "analyzer": "Winzou State Machine",
      "message": "3 machine(s) a etats winzou detectee(s) necessitant une migration vers Symfony Workflow",
      "detail": "Chaque machine a etats doit etre convertie en definition Symfony Workflow.",
      "suggestion": "Migrer chaque definition winzou_state_machine vers framework.workflows.",
      "estimated_minutes": 720
    }
  ]
}
```

---

Compatibility Matrix
--------------------

[](#compatibility-matrix)

Check the compatibility matrix for Sylius plugins:

```
vendor/bin/sylius-upgrade-analyzer sylius-upgrade:compatibility-matrix
```

---

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

[](#contributing)

Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on:

- Creating custom analyzers
- Creating custom fixers
- Coding standards and test requirements
- PR process

---

Documentation
-------------

[](#documentation)

- [All Analyzers Reference](docs/analyzers.md)
- [Creating a Custom Analyzer](docs/custom-analyzer.md)
- [Creating a Custom Fixer](docs/custom-fixer.md)
- [Custom Rules Reference](docs/custom-rules.md)
- [Migration Guide: From Detection to Resolution](docs/migration-guide.md)

---

Pricing
-------

[](#pricing)

The CLI tool is **free and open-source** (MIT License). Advanced features are available via [sylius-upgrade-analyzer.dev](https://sylius-upgrade-analyzer.dev):

PlanPriceIncludes**Report**59 EUR (one-time)1 professional PDF report with migration roadmap**Studio**299 EUR/yearUnlimited reports + white-label PDFs (agency logo, colors)**Agency**799 EUR/yearStudio features + 4 seat keys + multi-project consolidated reports---

License
-------

[](#license)

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

---

Author
------

[](#author)

**Pierre-Arthur Demengel** --

- GitHub: [github.com/pierrearthurdemengel/sylius-upgrade-analyzer](https://github.com/pierrearthurdemengel/sylius-upgrade-analyzer)
- Website: [sylius-upgrade-analyzer.dev](https://sylius-upgrade-analyzer.dev)

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance84

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

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

Total

26

Last Release

88d ago

Major Versions

v0.14.0 → v1.0.02026-04-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/da7085f96c83cbcd2b45374e22b8cb6317083890ab567ed05fece7c0630b2ee9?d=identicon)[pierrearthurdemengel](/maintainers/pierrearthurdemengel)

---

Top Contributors

[![pierrearthurdemengel](https://avatars.githubusercontent.com/u/124669857?v=4)](https://github.com/pierrearthurdemengel "pierrearthurdemengel (44 commits)")

---

Tags

phpstatic analysismigrationsyliusAuditupgrade

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/pierre-arthur-sylius-upgrade-analyzer/health.svg)

```
[![Health](https://phpackages.com/badges/pierre-arthur-sylius-upgrade-analyzer/health.svg)](https://phpackages.com/packages/pierre-arthur-sylius-upgrade-analyzer)
```

###  Alternatives

[jolicode/castor

A lightweight and modern task runner. Automate everything. In PHP.

54743.1k4](/packages/jolicode-castor)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.1k17.8k](/packages/prestashop-prestashop)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[ssch/typo3-rector

Instant fixes for your TYPO3 PHP code by using Rector.

2603.2M436](/packages/ssch-typo3-rector)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)

PHPackages © 2026

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