PHPackages                             burdaforward/bf-prg-bundle - 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. burdaforward/bf-prg-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

burdaforward/bf-prg-bundle
==========================

This bundle helps you to implement the PRG pattern into your application.

2.0.0(1y ago)05.3k1MITPHPPHP ^8.1

Since May 23Pushed 1y ago10 watchersCompare

[ Source](https://github.com/BurdaForward/BFPrgBundle)[ Packagist](https://packagist.org/packages/burdaforward/bf-prg-bundle)[ RSS](/packages/burdaforward-bf-prg-bundle/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (4)Versions (15)Used By (0)

BFPrgBundle
===========

[](#bfprgbundle)

The BFPrgBundle adds support for masking urls based on PRG-Pattern.

For more information about this pattern please take a closer look to the following url: [Post/Redirect/Get](https://en.wikipedia.org/wiki/Post/Redirect/Get)

**Note:** This bundle is built for use in a symfony application.

Installation &amp; Setup
------------------------

[](#installation--setup)

1. Run `composer require burdaforward/bf-prg-bundle` or download teh bundle to you local vendor directory
2. Activate this bundle

    - It should be activated automatically if you have Symfony Flex installed
    - Manually via `src/Kernel.php` or `config/bundles.php`

    ```
    ...

    class Kernel extends BaseKernel
    {
        ...

        public function registerBundles()
        {
            $bundles = array(
                ...

                new BurdaForward\BFPrgBundle\BFPrgBundle(),

                ...
            );

            return $bundles;
        }

        ...
    }
    ```
3. Add the bundle to your routing configuration like `config/routes.yaml`

    ```
      prg:
         resource: "@BFPrgBundle/Resources/config/routing.yml"
    ```

    This routing.yml enables a required route `/prg_resolve`.
4. In the last step you need to include the basic template of that bundle into your templates.

    (Best position is before closing body tag.)

    ```
    {% include '@BFPrg/prg_form.html.twig' %}
    ```

Usage &amp; Examples
--------------------

[](#usage--examples)

The bundle provides a twig function you can call in your templates.

```
Function name: prg_link
Function parameter:
    url: Destination URL including GET parameter
    title: Label  of the masked link. e.g. TITLE
    options: This is an array the supports the following options.
        class: you can set the css class of the rendered element
        element: the default is "span" but if you want to render a "button", "div" or "a" you can set it with this option
        target: you can define if the link should open in the same window (default value) or in a new one
                valid values are
                    - _self (same frame)
                    - _top (same window
                    - _blank (new window)
        only_open_tag: has to be set true or false - the result will only return the opening tag of a prg link
                       ATTENTION: You have to close the tag by yourself.

```

Basic example:

```
{{ prg_link('http://example.org?q=sample', 'Click me')|raw }}

Result: Click me

```

Stylesheet example:

```
{{ prg_link('http://example.org?q=sample', 'Click me', {class: 'my-link'})|raw }}

Result: Click me

```

Target example

```
{{ prg_link('http://example.org?q=sample', 'Click me', {target: '_blank'})|raw }}

Result: Click me

```

Element example:

```
{{ prg_link('http://example.org?q=sample', 'Click me', {element: 'button'})|raw }}

Result: Click me

```

Only Open Tag example:

```
{{ prg_link('http://example.org?q=sample', 'Title will be ignored', {only_open_tag: true)|raw }}

Result:

```

Contact
-------

[](#contact)

For questions and improvements contact us.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 67.9% 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 ~216 days

Recently: every ~189 days

Total

13

Last Release

683d ago

Major Versions

1.2.2 → 2.0.02024-07-05

PHP version history (3 changes)1.1.0PHP ^7.2

1.2.0PHP &gt;=7.2

2.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/2ff8bba9ea9faea7d2747858216cd847a17db27c36dd7ae92d6b7d942bdaac4e?d=identicon)[werfux](/maintainers/werfux)

---

Top Contributors

[![x-vlad-x](https://avatars.githubusercontent.com/u/6992531?v=4)](https://github.com/x-vlad-x "x-vlad-x (19 commits)")[![werfux](https://avatars.githubusercontent.com/u/5594950?v=4)](https://github.com/werfux "werfux (8 commits)")[![sebbemunich](https://avatars.githubusercontent.com/u/8530776?v=4)](https://github.com/sebbemunich "sebbemunich (1 commits)")

### Embed Badge

![Health badge](/badges/burdaforward-bf-prg-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/burdaforward-bf-prg-bundle/health.svg)](https://phpackages.com/packages/burdaforward-bf-prg-bundle)
```

###  Alternatives

[stfalcon/tinymce-bundle

This Bundle integrates TinyMCE WYSIWYG editor into a Symfony2 project.

2692.9M24](/packages/stfalcon-tinymce-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)[lullabot/drainpipe

An automated build tool to allow projects to have a set standardized operations scripts.

41716.4k2](/packages/lullabot-drainpipe)[pixelopen/cloudflare-turnstile-bundle

A simple package to help integrate Cloudflare Turnstile on Symfony.

31205.8k3](/packages/pixelopen-cloudflare-turnstile-bundle)[leapt/core-bundle

Symfony LeaptCoreBundle

2529.1k4](/packages/leapt-core-bundle)

PHPackages © 2026

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