PHPackages                             spryker-sdk/spryk-src - 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. spryker-sdk/spryk-src

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

spryker-sdk/spryk-src
=====================

SprykSrc module

1753[1 PRs](https://github.com/spryker-sdk/spryk-src/pulls)PHPCI failing

Since May 16Pushed 7mo ago10 watchersCompare

[ Source](https://github.com/spryker-sdk/spryk-src)[ Packagist](https://packagist.org/packages/spryker-sdk/spryk-src)[ RSS](/packages/spryker-sdk-spryk-src/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (5)Used By (0)

Spryk
=====

[](#spryk)

[![CI](https://github.com/spryker-sdk/spryk-src/workflows/CI/badge.svg?branch=master)](https://github.com/spryker-sdk/spryk-src/actions?query=workflow%3ACI+branch%3Amaster)[![Latest Stable Version](https://camo.githubusercontent.com/6aa0fee78bc59ae00b1c1308630a8d6fd54185ebbf8fb859dc79d3f3e13debf5/68747470733a2f2f706f7365722e707567782e6f72672f737072796b65722d73646b2f737072796b2d7372632f762f737461626c652e737667)](https://packagist.org/packages/spryker-sdk/spryk-src)[![Minimum PHP Version](https://camo.githubusercontent.com/9c50dc780fa576f5c39b4feff00c05345c1471be0808881a09e750b91220dc54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e332d3838393242462e737667)](https://php.net/)[![PHPStan](https://camo.githubusercontent.com/441b5874ce4df0a2defc892979c96c46889b69cb32119d04f0b48626349f8bc9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d656e61626c65642d627269676874677265656e2e7376673f7374796c653d666c6174)](https://github.com/phpstan/phpstan)

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

[](#installation)

```
composer require --dev spryker-sdk/spryk-src

```

you can also use `git clone`.

This is a development only "require-dev" library. Please make sure you include it as such.

> ***NOTE:***
>
> This repository is a development only package and will not be installed in projects directly.
>
> This package contains all code that will be compiled into a `spryk.phar` which will be installed instead.
>
> See [Compile](#Compile) section for further details.

### What are Spryks?

[](#what-are-spryks)

Spryks are some sort of code generators for Spryker. Writing code is often a very repetitive task and you often need to write a lot code just to follow Spryker's clean and complex architecture. To take a way the monkey work from writing wir up code and move faster towards writing business code Spryks are born.

Spryks are written with the help of yml files. The filename of the yml file represents also the Spryk name. In most cases the Spryk yml contains arguments which are needed to fullfill the Spryk build run. Almost all Spryks need the module name to run properly. Some Spryks require much more arguments.

The vast majority of the Spryks need to execute other Spryks before the called Spryk can run. For example Add a Zed Business Facade needs to have a properly created module before the Facade itself can be created. Therefore Spryks have pre and post Spryks and with the call of one Spryk many things can and will be created for you.

### How to create a Spryk?

[](#how-to-create-a-spryk)

In most cases it is very easy to create a Spryk. As the whole Spryk Tool is covered by tests you also have to start by adding a test for the Spryk you want to create.

If you only need to add a new Spryk configuration you will start by adding an Integration test for the new Spryk definition. You need to add the name of the Spryk you want to test. E.g. AddMySuperNiceFile and add the assertion to have this file created after you executed the test.

When this is done run the Integration tests with `vendor/bin/codecept run Integration -g {YOUR TEST GROUP}` and see the test failing. You will get a message that the Spryk definition was not found by the given name, so add the definition file for you new Spryk.

You need to add your Spryk definition file into `config/spryk/spryks/` on project or core level:

```
project OR package root directory
│
└─── config/
│   └─── spryk/
│   │    └─── spryks/
│   │         │   ...
│   │         │   spryk-name.yml
│   │         │   ...
│   └─── ...

```

If you selected the template Spryk, you will most likely see the error that the defined template file could not be found. In this case you need to add your template to `config/spryk/templates/` on project or core level:

```
project OR package root directory
│
└─── config/
│   └─── spryk/
│   │    └─── templates/
│   │         │   ...
│   │         │   template-name.twig
│   │         │   ...
│   └─── ...

```

When this is done re-run your tests. Now you should see a green test.

### Compile

[](#compile)

> ***NOTE***
>
> You need to have [BOX](https://github.com/box-project/box) installed to create the `spryk.phar` archive.
>
> `spryker-sdk/spryk` and `spryker-sdk/spryk-src` need to be installed together.

To compile the `spryk.phar` you need to run the following steps:

- `composer update`
- `bin/console spryk:compile`

This will install the latest dependencies, create a fresh cache and compiles the archive.

### Console commands

[](#console-commands)

#### Run Spryks

[](#run-spryks)

Runs a Spryk build process.

```
bin/spryk [options] [--]  [ []]
#or
php bin/spryk-run [options] [--]  [ []]
```

`spryk` Name of a specific Spryk to build.

Options:

- `--dry-run` Only prints a diff, doesn't change the files.
- `--include-optional=INCLUDE-OPTIONAL` Name(s) of the Spryks which are marked as optional but should be build.

#### Dump Spryks

[](#dump-spryks)

Dumps a list of all Spryk definitions.

```
php bin/spryk-dump [options] [--] [...]
```

`spryk` Name of a specific Spryk for which the options should be dumped.

Options:

- `--level=LEVEL` Spryk visibility level (1, 2, 3, all). By default = 1 (main spryk commands).

#### Build Spryks

[](#build-spryks)

Builds a cache for all possible Spryk arguments. This command must only be used if a new argument was supplied.

```
php bin/spryk-build
```

### See more

[](#see-more)

- [Spryk configuration reference](/docs/spryk_configuration_reference.md)
- [Developer's guide](/docs/developer_guige.md)
- [Add a new Spryk](/docs/add_new_spryk.md)

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance45

Moderate activity, may be stable

Popularity13

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity31

Early-stage or recently created project

 Bus Factor3

3 contributors hold 50%+ of commits

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://avatars.githubusercontent.com/u/10738957?v=4)[Spryker Bot](/maintainers/spryker-bot)[@spryker-bot](https://github.com/spryker-bot)

---

Top Contributors

[![stereomon](https://avatars.githubusercontent.com/u/1382877?v=4)](https://github.com/stereomon "stereomon (302 commits)")[![dereuromark](https://avatars.githubusercontent.com/u/39854?v=4)](https://github.com/dereuromark "dereuromark (117 commits)")[![zyuzka](https://avatars.githubusercontent.com/u/12764988?v=4)](https://github.com/zyuzka "zyuzka (97 commits)")[![limeeugenia](https://avatars.githubusercontent.com/u/25685017?v=4)](https://github.com/limeeugenia "limeeugenia (82 commits)")[![AsonUnique](https://avatars.githubusercontent.com/u/20453760?v=4)](https://github.com/AsonUnique "AsonUnique (46 commits)")[![yaroslav-spryker](https://avatars.githubusercontent.com/u/80392698?v=4)](https://github.com/yaroslav-spryker "yaroslav-spryker (46 commits)")[![olhalivitchuk](https://avatars.githubusercontent.com/u/77281282?v=4)](https://github.com/olhalivitchuk "olhalivitchuk (34 commits)")[![vol4onok](https://avatars.githubusercontent.com/u/5063777?v=4)](https://github.com/vol4onok "vol4onok (18 commits)")[![m7moud](https://avatars.githubusercontent.com/u/3217954?v=4)](https://github.com/m7moud "m7moud (16 commits)")[![a-sabaa](https://avatars.githubusercontent.com/u/1667759?v=4)](https://github.com/a-sabaa "a-sabaa (13 commits)")[![asmarovydlo](https://avatars.githubusercontent.com/u/15832795?v=4)](https://github.com/asmarovydlo "asmarovydlo (12 commits)")[![gechetspr](https://avatars.githubusercontent.com/u/42143273?v=4)](https://github.com/gechetspr "gechetspr (12 commits)")[![Nidhognit](https://avatars.githubusercontent.com/u/13098647?v=4)](https://github.com/Nidhognit "Nidhognit (10 commits)")[![pushokwhite](https://avatars.githubusercontent.com/u/4017411?v=4)](https://github.com/pushokwhite "pushokwhite (9 commits)")[![sergeyspryker](https://avatars.githubusercontent.com/u/100715007?v=4)](https://github.com/sergeyspryker "sergeyspryker (7 commits)")[![spryker-release-bot](https://avatars.githubusercontent.com/u/26904324?v=4)](https://github.com/spryker-release-bot "spryker-release-bot (5 commits)")[![vlunov-spryker](https://avatars.githubusercontent.com/u/17848943?v=4)](https://github.com/vlunov-spryker "vlunov-spryker (5 commits)")[![newLoki](https://avatars.githubusercontent.com/u/461574?v=4)](https://github.com/newLoki "newLoki (4 commits)")[![romanhavrylko](https://avatars.githubusercontent.com/u/70894038?v=4)](https://github.com/romanhavrylko "romanhavrylko (4 commits)")[![dmytromykhailov](https://avatars.githubusercontent.com/u/3383182?v=4)](https://github.com/dmytromykhailov "dmytromykhailov (1 commits)")

### Embed Badge

![Health badge](/badges/spryker-sdk-spryk-src/health.svg)

```
[![Health](https://phpackages.com/badges/spryker-sdk-spryk-src/health.svg)](https://phpackages.com/packages/spryker-sdk-spryk-src)
```

###  Alternatives

[flagstudio/nova-actions-left

Laravel Nova actions on the left

2258.2k](/packages/flagstudio-nova-actions-left)[humanmade/popup

An exit intent popup block that shows when someone may be about to leave the site

144.8k](/packages/humanmade-popup)

PHPackages © 2026

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