Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]ROUTING hostname
Forum PHP.pl > Forum > PHP > Frameworki
kielich
Witam,
próbuje zrobić tzw. WILD CARD poprzez routing (hostname)
I nie działa , ktoś może jest w stanie mi pomóc questionmark.gif!

O to kod

  1. $router = new Zend_Controller_Router_Route(':controller/:action/*', array('controller' => 'index','action' => 'index'));
  2.  
  3. $accountRoute = new Zend_Controller_Router_Route_Hostname(':account.localhost/projekt', array('module' => 'account',), array('account' => 'link',));
  4.  
  5. $router->addRoute('account', $accountRoute->chain($router));
batman
Gotowy przykład - http://blog.wilgucki.pl/2010/06/zendcontro...hostname-w.html
kielich
Wiem, czytałem ale chce wiedzieć co u mnie jest źle skoro podobnie mam do twojego przykładu
batman
Wyrzuć to /projekt i powinno działać.
kielich
Jednak nie działa po dodaniu czegokolwiek przed localhost kończy się się błędem "Nie odnaleziono serwera " sad.gif
batman
Dopiero teraz to zauważyłem. W Twoim kodzie masz babola polegającego na przypisaniu routera do samego siebie.
Sprawdź jeszcze raz u mnie na blogu jak to jest zrobione.
kielich
Poprawiłem tak juk u Ciebie
tez tak

  1. $pathRoute = new Zend_Controller_Router_Route(':controller/:action/*',array('controller' => 'index','action' => 'index'));
  2. $accountRoute = new Zend_Controller_Router_Route_Hostname(':module.localhost',array('module' => '',));
  3. $router->addRoute('asd', $accountRoute->chain($pathRoute));


kiedy wpisuje asd.localhost/projekt
jest blad wczytywania strony od razu
batman
Wklej tutaj ten komunikat. Będzie bardzo pomocny.
kielich
Najzwyklejszy komunikat FF

Kod
Nie odnaleziono serwera

Firefox nie może odnaleźć serwera asd.localhost
batman
A dodałeś do konfiguracji apache i do pliku hosts tą domenę? Jeśli nie, to nie będzie Ci to działać. Zawsze możesz pobawić się z wildcards, ale w tym niestety nie pomogę.
kielich
NO tak ale chciałem zrobić żeby były linki dynamiczne tworzone automatycznie razem z założonym kontem .Czyli co Zend nie da rady questionmark.gif
batman
Da radę, ale musisz ustawić na serwerze wildcards. Niestety tutaj odpadam. Poszukaj na forum, kilka razy padało o to pytanie.
kielich
Kurde na forum nic nie ma a w google nic konkretnie o WC (czyt. wildcars smile.gif ) + localhost nie ma
quality
Nie "wildcars", tylko "wildcard". Na localhost nie zrobisz latwo wildcard smile.gif. Musisz miec serwer dns itp smile.gif. Do testow mozesz wpiswac w plik /etc/hosts (w zalezonosci od systemu inne miejsce) dana domene oraz lokalne ip.

Np:
127.0.0.1 www.cms.localhost.pl cms.localhost.pl

Wtedy wszystko bedzie kierowalo do twojego serwera. Musisz rowniez dodac wirtualny host w apachu smile.gif

Po drugie dlaczego masz w route host ":module" ? Czy masz modul "asd" ? wpisujac ten link ?

Ja hostname i uzytwkonikow mam tak:
  1. $usersOne = new Zend_Controller_Router_Route(
  2. ':action/*',
  3. array('module' => 'default','controller' => 'Uzytkownik','action' => 'show'));
  4.  
  5. $users = new Zend_Controller_Router_Route_Hostname(
  6. ':users.localhost.pl',
  7. array(),
  8. array('users' => '([a-z0-9]+)',)
  9. );
  10.  
  11. $router->addRoute('users', $users->chain($usersOne));


Router ten zawsze uruchamia kontroler uzytkownik, paramert user => nazwa usera, i dalej akcja i dodatkowe parametry.


Po trzecie Zend_Controller_Router_Route_Hostname to nie jest wildcard. Wildcard to jest usluga serwera, Zend tylko zmienia adres w odpowiednie zadanie $_REQUEST.
Dokladniej przekierowywuje ona wszystkie adresy ( subdomeny ) na glowny adres serwera, dzieki temu mozemy operowac wewnatrz aplikacji pobierajac adres.

A po 4 jesli planujesz robic na tym uzytkownikow, tzn ze tez pewnie logowanie. Zeby to zrealizowac musisz ustawic odpowiednio ciasteczka :
  1. Zend_Session::setOptions(array('cookie_domain' => '.localhost.pl'));


Wazna tutaj jest wlasnie ta kropka przed adresem smile.gif

Pozdrawiam i zycze udanej zabawy smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.