PHPackages                             pocky/modern-plugin-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. pocky/modern-plugin-skeleton

ActiveSylius-plugin[Utility &amp; Helpers](/categories/utility)

pocky/modern-plugin-skeleton
============================

Acme example plugin for modern Sylius.

9113PHP

Since Apr 4Pushed 3y ago1 watchersCompare

[ Source](https://github.com/pocky/ModernPluginSkeleton)[ Packagist](https://packagist.org/packages/pocky/modern-plugin-skeleton)[ RSS](/packages/pocky-modern-plugin-skeleton/feed)WikiDiscussions main Synced 5d ago

READMEChangelogDependenciesVersions (2)Used By (0)

 [ ![](https://camo.githubusercontent.com/1567208cc7c8ec53cf6e2af4f54449a9bb3ab0dee7916998de4e3ce9b7f79015/68747470733a2f2f64656d6f2e73796c6975732e636f6d2f6173736574732f73686f702f696d672f6c6f676f2e706e67) ](https://sylius.com)

Modern Plugin Skeleton
======================

[](#modern-plugin-skeleton)

Modern Skeleton for starting Sylius plugins.

Warning
-------

[](#warning)

This plugin DOES NOT follow standard Sylius directory structure for plugins but a new "Symfony standard skeleton" one and services declaration in PHP (Symfony is actually leaving xml for PHP).

New directory structure:

```
├── assets
├── bin
├── config
├── docs
├── etc
├── features
├── public
├── src
├── templates
├── tests
└── translations

```

Informations:

- Related pull request on github (Symfony): [symfony/symfony#32845](https://github.com/symfony/symfony/pull/32845)
- Document for Symfony Bundle:

Quickstart Installation (docker)
--------------------------------

[](#quickstart-installation-docker)

1. Run `composer create-project pocky/modern-plugin-skeleton ProjectName dev-main` or clone this project
2. From the plugin skeleton root directory, run the following commands:

```
$ chmod -Rf 777 tests/Application/var
$ docker compose up -d
$ docker compose exec php php -d memory_limit=-1 /usr/bin/composer install
$ docker compose exec nodejs yarn --cwd tests/Application install
$ docker compose exec php tests/Application/bin/console doctrine:database:create --if-not-exists -vvv
$ docker compose exec php tests/Application/bin/console doctrine:schema:create -vvv
$ docker compose exec php tests/Application/bin/console assets:install tests/Application/public -vvv
$ docker compose exec nodejs yarn --cwd tests/Application build
$ docker compose exec php tests/Application/bin/console cache:warmup -vvv
$ docker compose exec php tests/Application/bin/console sylius:fixtures:load -n
```

### Quality tools

[](#quality-tools)

```
$ docker compose exec php composer validate --ansi --strict
$ docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon -l max src/
$ docker compose exec php vendor/bin/psalm
$ docker compose exec php vendor/bin/phpspec run --ansi -f progress --no-interaction
$ docker compose exec php vendor/bin/phpunit --colors=always
$ docker compose exec php vendor/bin/behat --profile docker --colors --strict -vvv --no-interaction
```

**ProTip** use `Makefile` ;)

Official Documentation
----------------------

[](#official-documentation)

For a comprehensive guide on Sylius Plugins development please go to Sylius documentation, there you will find the [Plugin Development Guide](https://docs.sylius.com/en/latest/plugin-development-guide/index.html), that is full of examples.

Quickstart Installation (legacy)
--------------------------------

[](#quickstart-installation-legacy)

1. Run `composer create-project pocky/modern-plugin-skeleton ProjectName`.
2. From the plugin skeleton root directory, run the following commands:

    ```
    $ (cd tests/Application && yarn install)
    $ (cd tests/Application && yarn build)
    $ (cd tests/Application && APP_ENV=test bin/console assets:install public)

    $ (cd tests/Application && APP_ENV=test bin/console doctrine:database:create)
    $ (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create)
    ```

To be able to setup a plugin's database, remember to configure you database credentials in `tests/Application/.env` and `tests/Application/.env.test`.

Usage
-----

[](#usage)

### Running plugin tests

[](#running-plugin-tests)

- PHPUnit

    ```
    vendor/bin/phpunit
    ```
- PHPSpec

    ```
    vendor/bin/phpspec run
    ```
- Behat (non-JS scenarios)

    ```
    vendor/bin/behat --strict --tags="~@javascript"
    ```
- Behat (JS scenarios)

    1. [Install Symfony CLI command](https://symfony.com/download).
    2. Start Headless Chrome:

    ```
    google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
    ```

    3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`:

    ```
    symfony server:ca:install
    APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
    ```

    4. Run Behat:

    ```
    vendor/bin/behat --strict --tags="@javascript"
    ```
- Static Analysis

    - Psalm

        ```
        vendor/bin/psalm
        ```
    - PHPStan

        ```
        vendor/bin/phpstan analyse -c phpstan.neon -l max src/
        ```
- Coding Standard

    ```
    vendor/bin/ecs check src
    ```

### Opening Sylius with your plugin

[](#opening-sylius-with-your-plugin)

- Using `test` environment:

    ```
    (cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load)
    (cd tests/Application && APP_ENV=test bin/console server:run -d public)
    ```
- Using `dev` environment:

    ```
    (cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load)
    (cd tests/Application && APP_ENV=dev bin/console server:run -d public)
    ```

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 83.3% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/86a3a03b53a62ac6bea9885beb48980a4a57dda70e36dc8828d0ececec05a738?d=identicon)[pocky](/maintainers/pocky)

---

Top Contributors

[![pocky](https://avatars.githubusercontent.com/u/204451?v=4)](https://github.com/pocky "pocky (30 commits)")[![macintoshplus](https://avatars.githubusercontent.com/u/814683?v=4)](https://github.com/macintoshplus "macintoshplus (4 commits)")[![Stolidbug](https://avatars.githubusercontent.com/u/65019992?v=4)](https://github.com/Stolidbug "Stolidbug (2 commits)")

---

Tags

sylius

### Embed Badge

![Health badge](/badges/pocky-modern-plugin-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/pocky-modern-plugin-skeleton/health.svg)](https://phpackages.com/packages/pocky-modern-plugin-skeleton)
```

###  Alternatives

[phois/whois

Whois client.

36785.9k](/packages/phois-whois)

PHPackages © 2026

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