Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] i hosting na home.pl
Forum PHP.pl > Forum > PHP > Frameworki
darko
Witam. Jak powszechnie wiadomo, aby uruchomić poprawnie działającą aplikację opartą o Zend Framework na home.pl należy ustawić ścieżki bezwzględne dla przekierowań:
  1. $this->_helper->Redirector->setUseAbsoluteUri(true);


W wersji hard można dodać tę linię kodu przed każdym przekierowaniem. W wersji soft można wrzucić tę linię kodu do metody _init() każdego kontrolera, który używa przekierowań. Szukam rozwiązania w wersji superlight, takiego, że zmieniam coś/dodaję tę linię kodu w jednym tylko miejscu i mam spokój.
Pytanie: czy poprawne/dozwolone/prawidłowe/wskazane byłoby gdybym dodał
  1. $this->_helper->Redirector->setUseAbsoluteUri(true);
do ciała metody init() klasy abstrakcyjnej Zend_Controller_Action (plik: /library/Zend/Controller/Action.php) ? Czy też jakoś inaczej można rozwiązać powyższy problem zachowując jedyny warunek modyfikacji w jednym tylko miejscu ?
Pozdrawiam.

ps. właściwie dziedziczenie po tej klasie, nadpisanie tej metody i następnie zmiana każdego kontrolera nie wchodzi w grę. Z góry dziękuję za jakąkolwiek pomoc.
ps 2. w sumie też chodzi o to czy nie naruszę w żaden sposób licencji (new BSD) modyfikując źródła frameworka Zend? Chyba nie.
zend
Dobrym zwyczajem jest tworzenie własnych klas typu Application_Controller_Action && Application_Db_Table && Application_Form i dziedziczenie po nich, co w przyszłości oszczędza duużo zachodu, możesz we wszystkich plikach kontrolerów zastąpić Zend_Controller_Action => Application_Controller_Action i tam wprowadzić zmianę, albo
  1. Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector') -> someActionsOnIt();


Wybierz sam co Ci najbardziej pasuje
darko
To wiem, jednak mi chodzi o to, żeby w ogóle nie ruszać istniejącego kodu, nie zmieniać kontrolerów (zależy mi na utrzymaniu jednej wersji dla hostingów typu home.pl i tej samej dla pozostałych, normalnych, i żeby jedyna różnica polegała na podmianie/dodaniu tej jednej linii kodu).
batman
Spróbuj dodać to ustawienie w Bootstrapie lub pluginie. Niestety nie mam teraz zbytnio czasu, by sprawdzić ten sposób.
zend
Widać za mało napisałem smile.gif Ten kod który podałem wstawiasz do bootstrapa albo do pliku index.php i niczego nie musisz ruszać oprócz index.php
darko
Dzięki za odpowiedzi, już sobie poradzę dalej. Pozdrawiam.
martq
A może umieścić tą linie kodu w jakimś pluginie?
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.