tangoman/callback-bundle

Callback Symfony Twig Extension Bundle

2.2.0 2018-11-25 23:57 UTC

This package is auto-updated.

Last update: 2024-04-16 23:52:49 UTC


README

TangoMan Callback Twig Extension Bundle provides simple callback manager for symfony projects.

For example, anytime you need your users to fill a form from a paginated list, your controller will have to redirect them to the page they originated from and you don't want them to loose their parameters from query string.

TangoMan Callback Twig Extension Bundle provides simple callback function for twig which avoids unnecessary callbacks to stack up indefinitely in users query string.

Installation

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

composer require tangoman/callback-bundle

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the app/AppKernel.php file of your project:

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    // ...

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new TangoMan\CallbackBundle\TangoManCallbackBundle(),
        );

        // ...
    }
}

You don't have to add TangoMan CallbackBundle to the service.yml of your project. twig.extension.callback service will load automatically.

Usage

callback(route = null, parameters = [])

Returns current URI removing callback from query string. Optionally, returns the absolute URL (with scheme and host) for the given route with given parameters, callback will be ignored as well.

route (optional) parameters (optional)
type string array
default current uri []

Inside your views:

By default callback will be defined on user's current page.

    <a href="{{ path('app_foo_bar', { 'callback': callback() }) }}">
        Your Foo Bar link here
    </a>

But you can optionally redirect user to any route.

    <a href="{{ path('app_delete_foo', { 'callback': callback('app_trash_bin', { 'slug': 'foo' } ) }) }}">
        Your Foo Bar link here
    </a>

Callback function accepts route name and parameters for desired route.

Inside your action method:

    public function foobarAction(Request $request)
    {
        ...
        // User is redirected to referrer page
        return $this->redirect($request->get('callback'));
        ...
    }

Tests

TangoMan CallbackBundle provides Makefile script to perform unit tests, in order to fit in your continuous integration workflow.

Enter following command to install required dependencies and execute unit tests:

$ make tests

On windows machine you will need to install cygwin or GnuWin make first to execute make script.

If you have XDebug installed, you can generate code coverage report with:

$ make coverage

Note

Build Status If you find any bug please report here : Issues

License

Copyright (c) 2018 Matthias Morin

License Distributed under the MIT license.

If you like TangoMan CallbackBundle please star! And follow me on GitHub: TangoMan75 ... And check my other cool projects.

Matthias Morin | LinkedIn