Temat: Niecodzienne routingi
Witam,
narazie nie zgłebiałem tematu więc może zna kotś jakieś lepsze rozwiązanie na taki problem :
wymyśliłem sobie takie routingi :
dla uzytkownika jan_kolalski :
/pages/jan_kowalski/view
/pages/jan_kowalski/displayAll
/pages/jan_kowalski/cosTam
dla uzytkownika jan_nowak
/pages/jan_nowak/view
/pages/jan_nowak/displayAll
/pages/jan_nowak/cosTam
view , displayAll , cosTam to metody controllera pages
chodzi mi o to zeby po wklepaniu tego urla : /pages/jan_nowak/view
uruchomic metode view i przekazac od niej jan_nowa jako $userName;
wyglada to tak :
<?php
class PagesController extends AppController {
public $name = "Pages";
public $uses = array();
public function view($userName) {
}
public function displayAll($userName) {
}
public function cosTam($userName) {
}
}Wg mnie bez re-factoringu kejka sie nie obejdzie zeby bylo gladko i przyjemnie ....
zmienilem /cake/dispatcher.php dodajac takie linijki ...
if ($controller->name = "Pages" && (!isset($methods[strtolower($params['action'])]) && isset($methods[$params['pass'][0]]))) {
$tmp = $params['action'];
$params['action'] = $params['pass'][0];
$params['pass'][0] = $tmp;
}nad linia :
if (!isset($methods[strtolower($params['action'])])) {Tylko ze nie chce stosowac refactoringu o ile to nie ostatecznosc, z drugiej strony biorac sie za refactoring mozna smialo pokusic sie o takie urle :
/jan_kowalski/view - co uruchomi /pages/jan_kowalski/view, co prawda da sie to zrobic na routingach np w ten sposob :
Router::connect('/jan_kowalski/:action/*', array('controller' => 'pages', "jan_kowalski"));Tylko troche nie "teges" wpisywac raz ze uzytkownikow z bazy w plik, a dwa zwalnia to cala aplikacje ( przy powiedzmy 1000 wpisow - a bede miec okolo 5k wpisow)....
Jakies ciekawe pomysly ?