[ZF] Rewrite |
[ZF] Rewrite |
29.05.2007, 21:49:59
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 21.05.2007 Ostrzeżenie: (0%) |
Czy mógłby mi ktoś wytłumaczyć na jakiej zasadzie działa rewrite w frameworku Zenda? Chodzi mi o adresy w postaci www.domena.com/nazwakontrolera/nazwaakcji
//--EDIT--// Nie wiem dlaczego temat został przeniesiony do innego działu bo bynajmniej nie chdozi mi o to jak wykorzystywać ZF ale o to w jaki sposób ZF tworzy wirtualne katalogi. Czy są to poprostu zmienne z adresu przepisane prze ModRewrite ? Ten post edytował Nightmare 29.05.2007, 22:19:54 |
|
|
30.05.2007, 07:02:35
Post
#2
|
|
Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn |
Przeniesiono bo temat dotyczy ZF...
A co do adresu to podejrzewam ze jak w CI pathinfo" title="Zobacz w manualu PHP" target="_manual |
|
|
30.05.2007, 11:11:57
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
A co do adresu to podejrzewam ze jak w CI pathinfo" title="Zobacz w manualu PHP" target="_manual Nie Zend_Uri[_Http] |
|
|
30.05.2007, 12:19:14
Post
#4
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 21.05.2007 Ostrzeżenie: (0%) |
Ale jeśli chciałbym napisać funkcje, która działa podobnie tak ja ta w ZF to nie moge po prostu zrzucić adresu do stringu i na nim operować ponieważ adres www.domena.com/nazwakontrolera/nazwaakcji otworzy mi po prostu katalog nazwaakcji zamiast uruchomic kontroler nazwakontrolera i wykonać metode nazwaakcji. Chyba, że to ja nie zrozumiałem założeń tejże funkcji w ZF.
|
|
|
30.05.2007, 14:05:04
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
O to metoda Zend_Controller_Request_Http::setRequestUri(), która jest odpowiedzialna za zczytanie adresu url wywołania.
Narobione jest tam troche zamieszania, ponieważ różne serwery (w różnych konfiguracjach) trzymają url w troche innych miejscach w tablicy $_SERVER. Dla Apache string z tym url'em zapisany jest w $_SERVER['REQUEST_URI']. edit: Mając na myśli url, myślałem o części adresu po domenie np. www.domena.pl/folder/plik.php/folder_fake/podfolder_fake/?zmienna_w_tablicy_get=jej_wartosc to $_SERVER['REQUEST_URI'] będzie zawierać /folder/plik.php/folder_fake/podfolder_fake/?zmienna_w_tablicy_get=jej_wartosc. Ten post edytował LBO 30.05.2007, 14:09:40 |
|
|
30.05.2007, 17:21:25
Post
#6
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 21.05.2007 Ostrzeżenie: (0%) |
I to zadziała w przypadku wpisania dowolnego wirtualnego katalogu do adresu ?
|
|
|
30.05.2007, 17:33:52
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
owszem, powinno... chociaż co jakiś czas Apache mi sie pieprzy i przy wirtualnym adresie pokazuje "No input file specified".
edit: Ale na serwerach produkcyjnych ten błąd chyba nie występuje. Ten post edytował LBO 30.05.2007, 17:34:34 |
|
|
30.05.2007, 17:42:17
Post
#8
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 21.05.2007 Ostrzeżenie: (0%) |
Nie chce zaśmiecać forum więc nie będę tworzył osobnego topicu. A więc czytając pewien post na tym forum napisałem coś takiego.
Całość znajduje się w pliku test.php I teraz adresy typu test.php/costam/costam działają, ale adresy typu /test/costam/costam juz nie. Czy jest jakiś sposób aby usunąć rozszerzenie z adresu? |
|
|
30.05.2007, 20:44:30
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
mod_rewrite
edit: ewentualnie w dyrektywach serwera ustawić, by pliki bez rozszerzenia traktować jak pliki php. Ten post edytował LBO 30.05.2007, 21:04:06 |
|
|
31.05.2007, 13:14:47
Post
#10
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 21.05.2007 Ostrzeżenie: (0%) |
Ale co w takim razie z $_GET Jak przesłać tablice $_GET bez jej wyświetlania w adresie? Czy wogóle jest to możliwe. Czytam z $_GET nazwy method i ich parametry, które są przesyłane wraz z kliknięciem w link. Czy jest jakiś inny sposób aby przesłać te parametry po kliknięciu w link?
|
|
|
31.05.2007, 13:28:12
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Teoretycznie $_GET powinno być nadal dostępne, nawet przy programistycznym rewrite...
edit: Jakoś przypadkiem wróciłem do tego tematu, ponownie przeczytałem Twoją ostatnią wypowiedź i już rozumiem. Tablica $_GET nie jest tablicą tylko do odczytu (read-only), możesz sam dodawać do niej wartości, jakbyś przeczytał kawałek kodu ZF, który zapostowałem wcześniej sam być to zauważył. Ten post edytował LBO 5.06.2007, 12:45:41 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 12:01 |