Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rozne konfiguracje routingu dla kazdego elementu aplikacji
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam co myslicie o definiowaniu routingu kazdego elementu ktory owy routing moze posiadac jako osobny plik i includowac je do glownego routingu?
https://docs.djangoproject.com/en/1.3/topic...-other-urlconfs

Ja widze w tym 2 pro:
-pozadek w routingu
-wiadomo jaki element edytujemy
-wieksza elastycznosc

Co o tym myslicie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(!*! @ 30.04.2012, 11:19:34 ) *
Nie bardzo bo jest to część FW. Jednak to nie jest trudne.
Pobierasz tablice z ustalonymi regułami (główną), jeśli obecna reguła zgadza się z uri, a w ich wartościach znajdziesz 'include' wczytujesz ten plik do już istniejącej tablicy i sprawdzasz jeszcze raz (oczywiście pomijając już inlude), coś na wzór rekurencji w wielopoziomowym menu.

Nie ma problemu zeby to zaimplementowac chcialem bardziej zobaczyc jak wyglada twoj router i routing ;)
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(marcio @ 30.04.2012, 12:43:02 ) *
Nie ma problemu zeby to zaimplementowac chcialem bardziej zobaczyc jak wyglada twoj router i routing (IMG:style_emoticons/default/wink.gif)


U mnie opiera się cały routing o wyrażenia regularne, bo nie pasuje mi metoda domena.com/kontroler/akcja/parametr czy jakieś śmieci przesyłane przez get, dlatego całkowicie się tego pozbyłem.

plik z regułami dla aplikacji:

  1. return array(
  2. 'regex_czy_cokolwiek([a-z])' => array(
  3. 'controller' => 'Start', // kontroler
  4. 'method' => 'index', // metoda kontrolera, jeśli jej brakuje, domyślnie jest to index
  5. 'param' => '$1', // parametry
  6. 'param_type' => array('$1' => ':num'),
  7. 'type' => 'static', // czy odwołać się statycznie
  8. 'include' => 'nazwa_pliku' // nazwa pliku z dodatkowym routingiem
  9. );


Dodatkowo wcześniej ładuje coś na wzór 2 routingu, dla aplikacji, jeśli jest ich więcej niż jedna i jest to plik dla całego FW.

  1. return array(
  2. 'nazwaAplikacji' => array(
  3. 'regex' => 'nazwaaplikacji([a-z0-9])', // sprawdzam czy aktualny uri pasuje jeśli tak to wczytuje tą konkretną aplikacje
  4. 'path' => './katalog', // główny katalog aplikacji
  5. 'http_type' => 'https', // czy zgadza się protokół
  6. );


Jesli żadne reguły nie pasują, ładowana jest aplikacja znajdująca się na pierwszej pozycji. Oczywiście w konfigu aplikacji jest informacja czy na serwerze są przyjazne linki itp. dlatego wcześniej przy parsowaniu uri dodaje możliwość "(index.php)?" lub nie. W przekazywanych parametrach są też różnego rodzaju bindy, :num, :year, :app itd.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 19:41