Case-sensitivity ve validačních výrazech rout
- jantichy
- Člen | 24
Ahoj, pracuju zatím na Nette 2.0-beta, tak doufám, že neřeším něco, co je už v poslední verzi změněné. PHP 5.3/Apache 2 na Windows.
Mám následující routu:
<?php
$router[] = new Route('<slug lorem|ipsum>', 'Foo:bar');
?>
Očekávám od ní, že mi bude chytat dotazy na url /lorem
a
/ipsum
, což funguje naprosto v pořádku.
Ona mi ale chytá i /Lorem
nebo /IPSUM
, což
rozhodně nechci a myslím, že to chce málokdo, kdo takovouhle routu
napíše.
Minimální dotaz: Jak to udělat, aby se to vyhodnocovalo case-sensitive? Nějaký přepínač, modifikátor?
Optimální řešení: Mělo by se to myslím chovat case-sensitive defaultně, protože bych to tak intuituvně očkával.
Magické řešení: Taky by to mohlo tyhle case-sensitive varianty automaticky kanonizovat a redirectovat, což je ale možná už příliš velká a neočekávaná magie. Takže to už asi spíš ne.
- Jan Tvrdík
- Nette guru | 2595
$router[] = new Route('<slug lorem|ipsum>', 'Foo:bar', Route::CASE_SENSITIVE);
Jako výchozí chování to můžeš nastavit pomocí:
Route::$defaultFlags |= Route::CASE_SENSITIVE;
- jantichy
- Člen | 24
Díky Honzo. Mohl by prosím někdo z místních dokumentaristů doplnit zmínku o case sensitivity u rout do dokumentace na stránku https://doc.nette.org/…tion/routing Díky.
- David Grudl
- Nette Core | 8218
jantichy napsal(a):
Díky Honzo. Mohl by prosím někdo z místních dokumentaristů doplnit zmínku o case sensitivity u rout do dokumentace na stránku https://doc.nette.org/…tion/routing Díky.
Máš už právo editovat dokumentaci.