hoaproject / Router

The Hoa\Router library.
https://hoa-project.net/
28 stars 11 forks source link

Problème avec la variable prefix #4

Closed roukmoute closed 11 years ago

roukmoute commented 11 years ago

Bonjour,

J'obtiens cette erreur :

( ! ) Hoa\Core\Exception\Error: preg_match(): Compilation failed: unmatched parentheses at offset 5 in \Hoa\Hoa\Router\Http.php on line 293

La ligne 293 étant celle-ci :

if(0 === preg_match('#^' . $prefix . '(.*)?$#', $uri, $matches))

Après avoir un peu regardé, cela viendrait de $prefix. En fait pour moi $prefix vaut . Je ne sais pas d'ou vient ce prefix chez moi. Du coup la regexp donne quelque chose comme ceci :

if(0 === preg_match('#^\(.*)?$#', $uri, $matches))

Et donc cette regexp n'est en effet pas correct.

Les routes sont tout à fait "normales", car même celle-ci n'est plus acceptée :

$router->get('i', '/', 'blog', 'index')
hoaproject commented 11 years ago

Hey :-),

For now, the prefix is considered as a regex. There is a discussion in development@lists.hoa-project.net to think if it is an appropriate assumption or not. Please, wait 1 or 2 days :-).

hoaproject commented 11 years ago

The commit 2897e77fadcf40567acf07f869d634b65091c67b should solve your problem :-). Please see the discussion.

roukmoute commented 11 years ago

Malheureusement cela ne fonctionne toujours pas.

( ! ) Hoa\Router\Exception\NotFound: Cannot match the path prefix %s in the URI %s. in \www\Hoa\Hoa\Router\Http.php on line 293

Voici ma seule route :

$router->get('fiche', '/fiche/(?<titre>[-\w]+)\.html', 'metier', 'fiche');

En attendant je met en dur dans le code du Router, pour continuer à avancer, à la ligne 287 :

$prefix = '';
hoaproject commented 11 years ago

Can you give me the result of $router->getPrefix(); and $router->getBootstrap() please? Also the URI? And, can you give me the code that catches the exception please?

roukmoute commented 11 years ago

Voici ce que me donne $router->getPrefix(); : \\ Voici ce que me donne $router->getBootstrap(); : /index.php L'URI souhaitée est celle-ci : http://local.metiers.com/metier/bijoutier-joaillier.html Le routeur utilisé est celui-ci :

$router->get('metier', '/metier/(?<titre>[-\w]+)\.html', 'metier', 'fiche');
hoaproject commented 11 years ago

This commit 45df26536d6d3fe67d31199b924f185ee4aa47fb should fix your new bug.

Please, can you edit your previous message to skip the exception stack (not needed here :-)). Thank!

roukmoute commented 11 years ago

Et bien ça fonctionne ! :+1:

hoaproject commented 11 years ago

Thanks :-).