Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zend_Router
Forum PHP.pl > Forum > PHP
UDAT
Jak ustawić Zend_Router aby nie odnosił mi się do ROOT_DIR serwera.

Dałem plik .htaccess do katalogu ROOT_DIR/subdir
Mam też odpowiednią strukturę , ale ciągle odnosi się do ROOT'_DIRa.
Sabistik
Sprawdź: http://www.akrabat.com/zend-framework-tutorial/
UDAT
Dobra. Użyłem Zend_Controller_RewriteRouter i działa.

Ale można sobie go o kant d*** rozbić.

Kod
http://host/katalog/newsy/lista/page/3/category/7


jest nie wiadomo czemu rozkładana na jakieś dziwne rzeczy ( których siłą rzeczy nie ma ), zamiast zgodnie z tym co piszą w dokumentacji na kontroler -> NewsyController i akcję -> listaAction z parametrami.

Jak skonfigurować oprócz dodania po jednym wpisie dla jednej akcji ?
envp
troche przerobiony (działający router zenda):

  1. <?php
  2. public function __construct()
  3. {
  4. $this->_sURI = $this->_formatQuery();
  5. }
  6.  
  7. private function _formatQuery(){
  8. return substr($_SERVER['REQUEST_URI'],strlen($_SERVER['SCRIPT_NAME'])-9,strlen($_SERVER['REQUEST_URI']));
  9. }
  10.  
  11. public function route()
  12. {
  13.  
  14. if (strstr($this->_sURI, '?')) {
  15. $this->_sURI = substr($this->_sURI, 0, strpos($this->_sURI, '?'));
  16. }
  17. $this->_aParams = explode('/', trim($this->_sURI, '/'));
  18. $this->_sCtrlName = $this->_aParams[0];
  19. $this->_sActName = isset($this->_aParams[1]) ? $this->_aParams[1] : null;
  20.  
  21. if (!strlen($this->_sCtrlName))
  22. {
  23. $this->_sCtrlName = _DEFAULT_CTRL_NAME;
  24. $this->_sActName = _DEFAULT_ACT_NAME;
  25. }
  26.  
  27.  
  28.  
  29.  $aActParams = array();
  30.  for ($i=2; $i<sizeof($this->_aParams); $i=$i+2) {
  31.  $aActParams[$this->_aParams[$i]] = isset($this->_aParams[$i+1]) ? $this->_aParams[$i+1] : null;
  32.  }
  33.  
  34.  
  35.  $oCurrentAction = new DispatcherToken($this->_sCtrlName, $this->_sActName, $aActParams);
  36.  
  37.  return $oCurrentAction;
  38.  
  39. }
  40. ?>
UDAT
Cytat(envp @ 27.10.2006, 21:37:24 ) *
troche przerobiony (działający router zenda):

  1. <?php
  2. public function __construct()
  3. {
  4. $this->_sURI = $this->_formatQuery();
  5. }
  6.  
  7. private function _formatQuery(){
  8. return substr($_SERVER['REQUEST_URI'],strlen($_SERVER['SCRIPT_NAME'])-9,strlen($_SERVER['REQUEST_URI']));
  9. }
  10.  
  11. public function route()
  12. {
  13.  
  14. if (strstr($this->_sURI, '?')) {
  15. $this->_sURI = substr($this->_sURI, 0, strpos($this->_sURI, '?'));
  16. }
  17. $this->_aParams = explode('/', trim($this->_sURI, '/'));
  18. $this->_sCtrlName = $this->_aParams[0];
  19. $this->_sActName = isset($this->_aParams[1]) ? $this->_aParams[1] : null;
  20.  
  21. if (!strlen($this->_sCtrlName))
  22. {
  23. $this->_sCtrlName = _DEFAULT_CTRL_NAME;
  24. $this->_sActName = _DEFAULT_ACT_NAME;
  25. }
  26.  $aActParams = array();
  27.  for ($i=2; $i<sizeof($this->_aParams); $i=$i+2) {
  28.  $aActParams[$this->_aParams[$i]] = isset($this->_aParams[$i+1]) ? $this->_aParams[$i+1] : null;
  29.  }
  30.  $oCurrentAction = new DispatcherToken($this->_sCtrlName, $this->_sActName, $aActParams);
  31.  
  32.  return $oCurrentAction;
  33.  
  34. }
  35. ?>


Nie działa.

Choćby _DEFAULT_ACT_NAME i _DEFAULT_CTRL_NAME jest niezdefiniowane oraz metoda route nie jest zgodna z interfejsem.
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.