2017 © Pedro Peláez
 

library saxulum-route-controller-provider

Saxulum Route/Controller Provider

image

saxulum/saxulum-route-controller-provider

Saxulum Route/Controller Provider

  • Friday, April 20, 2018
  • by dominikzogg
  • Repository
  • 1 Watchers
  • 2 Stars
  • 1,706 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 16 Versions
  • 2 % Grown

The README.md

saxulum-route-controller-provider

works with plain silex-php, (*1)

Build Status Total Downloads Latest Stable Version Scrutinizer Code Quality, (*2)

Features

  • Register Controller as Service using Annotations

Requirements

  • php >=5.3
  • Doctrine Annotations >=1.1
  • PHP Parser >=0.9,<1.0
  • Saxulum ClassFinder >=1.0
  • Symfony Finder Component >=2.3
  • Silex >= 1.1

Installation

Through Composer as [saxulum/saxulum-route-controller-provider][1]., (*3)

AnnotationRegistry

Add this line after you added the autoload.php from composer, (*4)

```{.php} \Doctrine\Common\Annotations\AnnotationRegistry::registerLoader( array($loader, 'loadClass') );, (*5)


### With defined cache dir ```{.php} use Saxulum\RouteController\Provider\RouteControllerProvider; use Silex\Provider\ServiceControllerServiceProvider; $app->register(new ServiceControllerServiceProvider()); $app->register(new RouteControllerProvider(), array( 'route_controller_cache' => '/path/to/cache/' ));
  • debug == true: the cache file will be build at each load
  • debug == false: the cache file will be build if not exists, delete it if its out of sync

Without defined cache dir

probably slower, cause temp dir cleanups, (*6)

```{.php} use Saxulum\RouteController\Provider\RouteControllerProvider; use Silex\Provider\ServiceControllerServiceProvider;, (*7)

$app->register(new ServiceControllerServiceProvider()); $app->register(new RouteControllerProvider());, (*8)


* `debug == true`: the cache file will be build at each load * `debug == false`: the cache file will be build if not exists, delete it if its out of sync ### Add the controller paths ```{.php} $app['route_controller_paths'] = $app->share( $app->extend('route_controller_paths', function ($paths) { $paths[] = '/path/to/the/controllers'; return $paths; }) );

Usage

Route Annotation

Controller

```{.php} use Saxulum\RouteController\Annotation\Route;, (*9)

/** * @Route("/{_locale}") */, (*10)


#### Method ```{.php} use Saxulum\RouteController\Annotation\Callback; use Saxulum\RouteController\Annotation\Convert; use Saxulum\RouteController\Annotation\Route; /** * @Route("/hello/{name}", * bind="hello_name", * asserts={"name"="\w+"}, * values={"name"="world"}, * converters={ * @Convert("name", callback=@Callback("__self:convertName")) * }, * method="GET", * requireHttp=false, * requireHttps=false, * before={ * @Callback("__self:beforeFirst"), * @Callback("__self::beforeSecond") * }, * after={ * @Callback("__self:afterFirst"), * @Callback("__self::afterSecond") * } * ) */
  • __self get replaced by the controller class.
  • __self:beforeFirst calls the method beforeFirst on the controller instance
  • __self::beforeSecond calls the static method beforeSecond on the controller

Dependency Injection Annotation

If there is no DI annotation, the controller will be registred without any dependencies as long there is at least one method route annotation., (*11)

Container Injection

```{.php} use Saxulum\RouteController\Annotation\DI;, (*12)

/** * @DI(injectContainer=true) */, (*13)


#### Service Injection ```{.php} use Saxulum\RouteController\Annotation\DI; /** * @DI(serviceIds={"url_generator"}) */

The Versions

20/04 2018

dev-master

9999999-dev

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

13/12 2015

1.3.0

1.3.0.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

25/03 2015

1.2.3

1.2.3.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

07/03 2015

1.2.2

1.2.2.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

21/01 2015

1.2.1

1.2.1.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

01/05 2014

1.2.0

1.2.0.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

27/04 2014
19/03 2014
12/03 2014
09/03 2014

1.1.0

1.1.0.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

14/02 2014

1.0.5

1.0.5.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

30/01 2014

1.0.4

1.0.4.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

30/01 2014

1.0.3

1.0.3.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

26/01 2014

1.0.2

1.0.2.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

26/01 2014

1.0.1

1.0.1.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum

26/01 2014

1.0.0

1.0.0.0

Saxulum Route/Controller Provider

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dominik Zogg

silex route controller saxulum