strrev pro UTF řetězce + (další detaily)
- bojovyletoun
- Člen | 667
1.
ahoj, divím se, že pořád není funkce strrev pracující s UTF8 v PHP.
Bylo by možné ji doplnit do frameworku?
Můj commit
2.
bylo by možné u micropresenteru vyčleninit canolizaci do samotné metody a spouštět ručně v případě potřeby (tedy uvnitř callbacku $presenter->canolize() ) . Není to definitivní, asi je lepší možnost jak to napsat.
3.
Použiji li Route a callback pro druhý argument pro MicroPresentér, pak se blbě definují některá metadata. Např použití FILTER_něco pro nějaký parametr se musí dělat oklikou přes styles.
Route::setStyleProperty("pat", Route::FILTER_IN, function($s){return Nette\Utils\Strings::reverse($s);});
$r[] = new Route('<pat>', function($pat, \NetteModule\MicroPresenter $presenter,$pat)use($cont){...}
Vím že jde o minoritní problém, ale napadá mě to upravit třeba tak, že bude-li nastaven flag Route::Micro, pak se použije callback definovaný v metadata[‚callback‘]. Metadata zustane jako pole a bude dál možno nastavovat filtry atd. Nebo přidat 4. parametr do Route::__construct, což by byl ten callback. je to zpětně kompatibilní obě řešení.
Teda ještě to jde řešit takovouhle oklikou:
// Route:: addstyle,setStyleProperty("#G", Route::FILTER_IN, function($s) {}...
$r[] = new Route('<pat #G>', array(
'callback' => $cb,
Route::MODULE_KEY=>"NEtte",
Route::PRESENTER_KEY=>"Micro",
'pat' => array(Route::PATTERN => "[[:alpha:]0]*"
Editoval bojovyletoun (28. 12. 2011 1:37)
- bojovyletoun
- Člen | 667
Upraveno: používá UTF-32. Přidán test, kde v testovacím řetězci
jsou zastoupeny znaky, jejichž zápis v UTF-8 má od 1 až po 4 znaky.
půl
Editoval bojovyletoun (10. 1. 2012 14:32)
- David Grudl
- Nette Core | 8227
IMHO funkce strrev je ve frameworku naprosto ale naprosto zbytečná, ale neměl bych to srdce tak elegantní implementaci nemergnout :-)