Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Hello.
Quelqu'un aurait-il un petit script carambar pour tester si une url (string) matche avec une des routes du module ?
Hors ligne
[lang=php] class CarambarControllerTest extends \Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase { public function setUp() { $this->setApplicationConfig( include __DIR__ . '/../../../../../config/application.config.php' ); parent::setUp(); } public function testCarambar() { $this->dispatch('/'); $this->assertResponseStatusCode(200); $this->assertModuleName('application'); $this->assertControllerName('application\controller\index'); $this->assertControllerClass('CarambarController'); $this->assertMatchedRouteName('carambar-route'); $this->assertQuery('html > head'); } }
C'est pas de moi, mais ça devrait marcher ^^
Dernière modification par flobrflo (19-03-2014 19:55:18)
Hors ligne
Merci mais ce n'est pas ce que je cherche.
J'ai une url, disons http://www.mondomaine.com/album/view/3
Je veux savoir si cette url est valide avec ma conf de routage, ie elle existe bien pour le routeur.
Cela dans mon programme, pas dans des tests unitaires.
Dernière modification par Bouks (19-03-2014 21:28:59)
Hors ligne
Plop, en récupérant le code du dans le module MVC ça ne fonctionne pas ? J'ai pas d'appli sous les yeux mais en regardant vite fait sur github tu devrais pouvoir trouver ton bonheur en t'inspirant de ça https://github.com/zendframework/zf2/bl … k.php#L290 et du MvcEvent.
Hors ligne
J'avais bien vu ce que tu m'indiques mais ça ne fonctionne pas. Enfin je me suis peut-être planté dans l'utilisation.
[lang=php] public function setEventManager(EventManagerInterface $em) { $em->attach('dispatch', function ($e) { $rm = $e->getRouter()->getRoutePluginManager(); $request = (new Request())->setUri('http://mondomaine.com'); $match= (new SimpleRouteStack($rm))->addRoutes($e->getApplication()->getConfig()['router']['routes'])->match($request); var_dump($match); }, 100); parent::setEventManager($em); }
me retourne bien le bon routeMatch.
Cependant si je met une quelconque url valide et bien routée par mon module (genre http://mondomaine.com/albums), ça me retourne null.
Hors ligne
Ben moi je l'aurais utilisé comme le fait le moteur Mvc pour dispatcher ta requête en fonction de l'url du navigateur. Si ça marche dans le moteur Mvc on doit pouvoir le réutiliser ailleurs puisqu'avec l'url il retrouve la route. Tu devrais trouver des infos ici : http://framework.zend.com/manual/2.3/en … uting.html ça me semble pas bien compliqué en fait à faire
Hors ligne
Ok c'est bon. Il fallait utiliser TreeRouteStack au lieu de SimpleRouteStack.
Hors ligne
Le script en application concrète :
http://www.z-f.fr/forum/viewtopic.php?id=9011
Hors ligne