2017 © Pedro Peláez
 

symfony-bundle router-bundle

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

image

yasiekz/router-bundle

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  • Thursday, January 15, 2015
  • by yasiekz
  • Repository
  • 1 Watchers
  • 2 Stars
  • 812 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 2 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters, (*2)

Instalation

Add bundle in your AppKernel.php, (*3)

$bundles = array(
                new Yasiekz\RouterBundle\YasiekzRouterBundle(),
            )

Bundle automatically overrides default symfony2 routing service., (*4)

Additional Configuration

There is no additional configuration required., (*5)

What interface should I use?

We have two interfaces avaiable. The RoutableCmsInterface is useful when you want to have more than one routing per object for example in CMS systems, where you might want to have diffrent routing for edit, delete object. The RoutableFrontInterface is useful for websites when there is only only one routing per object, but one object might have many routes depends on for example category that object belongs. TheRoutableMultiFrontStrategy is combo of both interfaces., (*6)

Usage:

RoutableCmsInterface

use Yasiekz\RouterBundle\Service\RoutableCmsInterface;

class YourClass implements RoutableCmsIterface
{
    public function getPossibleRoutes()
    {
        // method should return an array of aviable routes as below
        return array(
            'destination1' => 'routingName1',
            'destination2' => 'routingName2'
        );
    }

    public function getRouterParameters($routeName, $destination = null);
    {
        // method should return parameters that is necessary to create routing depend on $destination parameter:
        return array(
            'id' => $this->getId()
        );
    }
}

The URL is generated as same as default in Symfony2., (*7)

From controller:, (*8)

$object = new YourClass();
$url = $this->generateUrl($object, 'edit');

The example above generates indirect address to object $object for destination 'edit', (*9)

From twig:, (*10)

{{ path(object, 'edit') }}

RoutableFrontInterface

Usage, (*11)

use Yasiekz\RouterBundle\Service\RoutableFrontInterface;

class YourClass implements RoutableFrontIterface
{
    public function getRouteName()
    {
        // method should return routeName for given object
        return 'yourclass_detail';
    }

    public function getRouterParameters($routeName, $destination = null);
    {
        // method should return parameters that is necessary to create routing depend on $routeName parameter:

        return array(
            'id' => $this->getId()
        );
    }
}

The URL is generated as same as default in symfony2., (*12)

From controller:, (*13)

$object = new YourClass();
$paramers = array(); // here might be additional params which be marged to routing
$url = $this->generateUrl($object, $parameters);

The example above generates indirect address to object $object without transmission any additional params. Will be taken only params from getRouterParameters() method from class YourClass., (*14)

From Twig:, (*15)

{{ path(object, { 'param1': value1, 'param2': value2 }) }}

RoutableMultiFrontInterface

Usage, (*16)

use Yasiekz\RouterBundle\Service\RoutableMultiFrontInterface;

class YourClass implements RoutableMultiFrontInterface
{
    const DESTINATION_ARTICLE = 'article';

    public function getRouteName($parameters = array(), $destination = null)
    {
        // method should return routeName for given object and parameters or destination
        if ($destination == self::DESTINATION_ARTICLE) {
            return 'yourclass_detail';
        }
        return 'yourclass_default';
    }

    public function getRouterParameters($routeName, $destination = null);
    {
        // method should return parameters that is necessary to create routing depend on $routeName parameter:

        return array(
            'id' => $this->getId()
        );
    }
}

The URL is generated as same as default in symfony2., (*17)

From controller:, (*18)

$object = new YourClass();
$parameters = array('destination' => 'article'); // here might be additional params which be marged to routing
$url = $this->generateUrl($object, $parameters);

The example above generates indirect address to object $object with transmission destination param, and merge this param with getRouterParameters() method from class YourClass, (*19)

From Twig:, (*20)

{{ path(object, { 'destination': 'article', 'param1': value1, 'param2': value2 }) }}

Important

There is no possibility that the one class implements all interfaces at the same time., (*21)

Contrubution

You are highly encouraged to participate in the development. The terms are the same as the symfony2 http://symfony.com/doc/current/contributing/code/patches.html, (*22)

The Versions

15/01 2015

dev-master

9999999-dev

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz

15/01 2015

dev-feature/composerlock-delete

dev-feature/composerlock-delete

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz

15/01 2015

dev-feature/MultiFrontStrategy

dev-feature/MultiFrontStrategy

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz

12/01 2015

1.0.3

1.0.3.0

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz

11/01 2015

1.0.2

1.0.2.0

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz

05/01 2015

1.0.1

1.0.1.0

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz

28/12 2014

1.0.0

1.0.0.0

Bundle that provides aviability of generating URL address to objects instead of giving route name and route parameters

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Zieba

symfony routing yasiekz