![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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? -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam co myslicie o definiowaniu routingu kazdego elementu ktory owy routing moze posiadac jako osobny plik i includowac je do glownego routingu? Zaimplementowałem u siebie coś podobnego, z tą różnicą że jest to nazwa pliku w kluczu 'include'. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Zaimplementowałem u siebie coś podobnego, z tą różnicą że jest to nazwa pliku w kluczu 'include'. No to tez o tym mowie ;) jesli cie dobrze zrozumialem Zaimplementowałem u siebie coś podobnego, z tą różnicą że jest to nazwa pliku w kluczu 'include'. Moglbys rzucic kodem ;p?!? -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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. Ten post edytował !*! 30.04.2012, 10:20:36 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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 ;) -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma problemu zeby to zaimplementowac chcialem bardziej zobaczyc jak wyglada twoj router i routing ![]() 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:
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.
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. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Tak się zastanawiam,czy portu nie trzeba zmieniać,podczas przekierowywania z http na https?
HTTP standardowo port 80 lub 8080 ,https to port 443.Trzeba by było w konfiguracji apache utworzyć wiele lokacji i w zależności od portu przekierowywać na odpowiedni URL lub utworzyć jakiś load balancer. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak się zastanawiam,czy portu nie trzeba zmieniać,podczas przekierowywania z http na https? HTTP standardowo port 80 lub 8080 ,https to port 443.Trzeba by było w konfiguracji apache utworzyć wiele lokacji i w zależności od portu przekierowywać na odpowiedni URL lub utworzyć jakiś load balancer. A niby w jakim celu? Tzn. nie rozumiem po co chcesz zmieniać porty jak to działa od ręki. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Można użyć virtual host dla portu 80 i określić stronę/y oraz drugi dla portu 443-beż zbędnego url rewriting.
Ten post edytował Niktoś 1.05.2012, 10:03:48 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
No dzieki ci bardzo @!*! mam jedno pytanie, tez mam statyczne i dynamiczne reguly routingu:
Jak widac mam 2 reguly dynamiczne naleza one do komponentu news. Linki tworze za pomoca nr segmentu z url czyli mam metode:
Majac taka regule link do wpisu wyglada index.php/400 Wszystko u mnie dziala, doszedlem jednak do wniosku ze jesli zmienie reguly routingu potrzebna bedzie tez zmiana tworzenia linkow, czyli ktory segment ma pobierac defaultowo jest to segment 4 a po dynamicznym routingu mam segment nr 0. Za kazdym razem musze ingerowac w kod widoku(tam gdzie tworze odnosniki do wpisu) jak mozna takie cos osiagnac autmatycznie? -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Majac taka regule link do wpisu wyglada index.php/400 Wszystko u mnie dziala, doszedlem jednak do wniosku ze jesli zmienie reguly routingu potrzebna bedzie tez zmiana tworzenia linkow, czyli ktory segment ma pobierac defaultowo jest to segment 4 a po dynamicznym routingu mam segment nr 0. Za kazdym razem musze ingerowac w kod widoku(tam gdzie tworze odnosniki do wpisu) jak mozna takie cos osiagnac autmatycznie? Właśnie dlatego zrezygnowałem z tego typu zadań obliczania pozycji po URI, bo wprowadza to niepotrzebny zamęt. Routing jest stały, nie zmieniasz go w żaden sposób dynamiczne, dlatego u mnie wystarczy napisać:
Dla domyślnego ustawienia można napisać nowe wyrażenie, lub załatwić to już z poziomu modelu, skoro i tak odwołujemy się do metody. Generowanie linków... tu szału nie ma, ponieważ link generowany jest na podstawie danych np. "/page/add,400" i do niego są doklejane potrzebne informacje np. język "/pl/add,400" wszytko do ustalenia z poziomu cfg -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Tak zgadzam sie z toba ze nie jest to najlepsze rozwiazanie, poki co przychodzi mi do glowy ustawienie w konfiguracji np:
Wtedy przy tworzeniu linku zrobie:
Wtedy moge "dynamicznie" zrobic tworzenie linkow(niezaleznie jak bedzie wygladal routing) i przekazywanie parametrow tez bedzie dynamiczne a w routingu zostawic tak jak ja chce, wtedy przy zmianie routingu trzebaby bylo zmienic tez nr segmentu dla danej akcji. Dlaczego tak kombinuje...?!? U ciebie w fw zapewnie wyglada to jak w Kohana, czyli jesli kontroler dostaje parametry to dana akcja dostaje je w deklaracji metody czyli:
Oczywiscie zgaduje, powiec mi jesli sie myle. U mnie jednak parametry tez sa pobierane za pomoca uri/get/post a nie odrazu do deklaracji akcji(metody) kontrolera...wiec tez nie moge zbytnio zrobic tak jak bym chcial... -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
U mnie na przykład w fw parametry, które wygeneruje mi router wrzucam do obiektu Request (tak samo jak post/get itd.), który dispatcher wciśnie do głównego kontrolera razem z obiektem Response.
standardowo linki wyglądaja tak: /kontroler/akcja/param1:wartosc/param2:wartosc, a jak chciałbym zmienić na ładniejsze linki:
nie rozróżniam tego na statyczne/dynamiczne, tam gdzie chce regex to jest regex, jak nie ma to jest statyczne. Mógłbym jeszcze ścieżkę rozbić na kontroler/akcje/parametry, ale na tę chwilę nie ma z tym tragedii ![]() Ten post edytował Quantum 1.05.2012, 21:05:49 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Tak rozumiem...jednak u ciebie wyglada to tak: /controller/action/args1:val1/args2:val2 i np taki url: /controller/action/args2:val2/args1:val1 jest jednoznaczny, poniewaz nie opierasz sie na argumentach "pozycyjnych"(jesli mozna to tak nazwac) pobierasz wartosc argumentu za pomoca jego nazwy czyli nie wazne w jakiej kolejnosci je podasz tak czy siak dostaniesz to co chciales, u mnie jednak ich kolejnosc jest wazna...
Wiec moje pytanie jest nastepujace. 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. Teraz powiedzmy ze chcialbym zmienic to na krotszy link(patrz tablice routingu z poprzedniego posta) czyli dostajemy taki link index.php/id i otrzymamy to samo bo odpali sie ten sam frontcontroller,akcja i akcja komponentu jednak musze ingerowac w kod kontrolera komponentu news zeby generowal ten krotki(drugi link) zamiast tego dlugiego....jak zrobic by generowanie linkow bylo spojne z routerem? Nie wiem czy sie wyrazilem...moze ktos z was podac jakis "jasny" przyklad? -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:30 |