# ParamsCodecBundle
[
]
(https://travis-ci.org/artur-augustyniak/ParamsCodecBundle), (*1)
Provides a simple Symfony 2/3 Bundle to AES encrypt routing parameters., (*2)
Installing via Composer
{
"require": {
"aaugustyniak/params-codec-bundle": "dev-master"
}
}
Using and Setting Up
composer
composer aaugustyniak/params-codec-bundle
AppKernel.php
$bundles = [
...,
new Aaugustyniak\ParamsCodecBundle\ParamsCodecBundle()
];
Basic usage
This bundle registers param_codec service and
twig extension providing two functions in relation with standard
Twig url creation functions., (*3)
In default implementation ParamCodec interface is backed by AesCodec.
ParamCodec uses secret passphrase from parameters.yml., (*4)
DefaultController.php
use Aaugustyniak\ParamsCodecBundle\Annotations\DecryptParams;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
/**
* Value to be encrypted in resulting url/path
*/
$rawValue = "Some secret internal value";
return $this->render('default/index.html.twig', [
'raw_value' => $rawValue,
]);
}
/**
* @DecryptParams()
*
* @Route("/display/{param}", name="display")
* @param $param
* @return \Symfony\Component\HttpFoundation\Response
*/
public function displayAction($param)
{
/**
* Using @DecryptParams() annotation $param is auto decrypted
*/
return $this->render('default/index.html.twig', [
'decrypted_value' => $param
]);
}
}
index.html.twig
{% extends 'base.html.twig' %}
{% block body %}
{% if decrypted_value is defined %}
Decrypted param:
{{ decrypted_value }}
BACK
{% else %}
{% verbatim %}
{{ raw_value }}
{% endverbatim %}
{{ raw_value }}
, (*5)
{% endif %}
{% endblock %}