2021-02-10 11:18:10 +01:00
|
|
|
#Le conduit Symfony
|
2020-02-01 11:41:01 +01:00
|
|
|
|
|
|
|
>Le conduit est une nouveautée de l'application, celle permet de réaliser
|
|
|
|
un controlleur similaire a Symfony qui est dénomé ici Conduit car il prend
|
|
|
|
en paramètre une route défini dans le fichier routing.yml.
|
|
|
|
|
2019-12-17 08:56:34 +01:00
|
|
|
Cette fonctionnalité permet de choisir la route indépendamment du moteur.
|
2021-07-12 15:35:54 +02:00
|
|
|
Elle est utlie aussi pour créer des appels Curl et Ajax.
|
|
|
|
|
2019-12-17 08:56:34 +01:00
|
|
|
il faut instancier le fichier `application/config/files/routing.yml`
|
|
|
|
avec la route de base et les routes que vous voulez conduire, par exemple:
|
|
|
|
```yml
|
|
|
|
home_route:
|
|
|
|
path: /
|
|
|
|
defaults: { controller: 'FooController::indexAction' }
|
|
|
|
|
|
|
|
foo_route:
|
|
|
|
path: /foo
|
|
|
|
defaults: { controller: 'FooConduit::index' }
|
|
|
|
|
|
|
|
foo_placeholder_route:
|
|
|
|
path: /foo/{id}
|
|
|
|
defaults: { controller: 'FooConduit::load' }
|
|
|
|
requirements:
|
|
|
|
id: '[0-9]+'
|
|
|
|
```
|
|
|
|
|
|
|
|
et définir le Conduit correspondant avec les méthodes correspondantes dans le dossier `application/include/conduits`, ici:
|
|
|
|
```php
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
use MVC\Classe\Implement\Conduit;
|
|
|
|
|
|
|
|
class FooConduit extends Conduit
|
|
|
|
{
|
|
|
|
// Route('/foo')
|
|
|
|
public function index()
|
|
|
|
{
|
|
|
|
echo "blob of foo";
|
|
|
|
return $this->render('foo', array('page_title' => 'Foo', 'description' => 'FooConduit'));
|
|
|
|
}
|
|
|
|
|
|
|
|
// Route('/foo/{id}')
|
|
|
|
public function load()
|
|
|
|
{
|
|
|
|
echo "load of foo";
|
|
|
|
return $this->render('foo', array('page_title' => 'Foo', 'description' => 'FooConduit', 'id' => $this->id));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
2021-07-12 15:35:54 +02:00
|
|
|
Vous remarquerez que les variables passé en GET sont obtenu dans le conduit par `$this->varname`.
|