Cytat
u mnie jednak ich kolejnosc jest wazna...
To jest jest właśnie ten cały mankament.
Cytat
Jak zbudowac router i routing tak zeby tworzenie url-ow bylo niezalezne?
To znaczy moze jasniej gdy nie mam ustawiongo zadnego routingu dla komponentu news to zeby odczytac wpis trzeba wklepac index.php/Home,Index,readNews,id i tak wyglada link generowany przez komponent news.
Nie bardzo rozumiem, dlaczego router miałby nie być określony? Dla mnie router to jeden z głównych fundamentów aplikacji, więc jako projektant, trudno abym o czymś zapomniał.
Chodzi Ci o brak parametrów? To albo ustawiasz dodatkowy routing i nadajesz mu domyślną wartość tu: dla index.php/id lub robisz dokładnie to samo, tylko z poziomu modelu stwierdzasz brak parametru.
Cytat
jak zrobic by generowanie linkow bylo spojne z routerem?
Zacznijmy od tego że powinieneś to gdzies ustalić jakie linki mają być generowane np. w cfg.
U mnie wygląda to mniej więcej tak
Kod
':lang?strona/:id' // gdzie :lang to wartość dla opcji językowej która może występować lecz nie musi, a :id to po prostu id artu
generowanie linku wygląda w ten sposób, że jeśli router odebrał :lang i taka wersja występuje w tablicy, jest ona zwracana, czyli doklejana do linku tam gdzie występuje
http://domena/en_uk/ następnie idzie dalej i jeśli :id pasuje to tego co zdefiniowałem, i jest liczbą to przekazuje
http://domena/en_uk/strona/123 zresztą to może kiepski przykład. Chodzi mi o to że linki, tzn. zawsze odbierasz jakieś dane np. z bazy o wybranym newsie np. /news/123 i na tej podstawie doklejasz to do wersji językowej, bo to tylko ona jest zmienną w adresach i trudno żeby było co innego. Po prostu musisz zdefiniować gdzieś, jak te linki mają wyglądać, u mnie jest to router i częściowo cfg.
I z Twoim przykładem, u mnie wyglądałoby to tak
'news\/read/([0-9])' => array( 'controller' => 'News',
'method' => 'read',
'param' => '$1'
'news\/([0-9])' => array( 'controller' => 'News',
'method' => 'read',
'param' => '$1' //
);