Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Helper w helperze
Forum PHP.pl > Forum > PHP > Frameworki
piraciq
Witam

mam sobie helper który robi mi miniaturki chciał bym go użyć w innym helperze.

Teoretycznie działa jeśli nie ma zadnej akcji jest index/index w przypadku gdy wybiorę akcje dostaje komunikat:
Warning: include_once(Zend/View/Helper/Showobjectimage.php): failed to open stream: No such file or directory in /library/Zend/Loader.php on line 146
Warning: include_once(): Failed opening 'Zend/View/Helper/Showobjectimage.php' for inclusion (include_path='/application/../library:/library:.:/usr/share/php:/usr/share/pear') in s/library/Zend/Loader.php on line 146 Fatal error: Class 'Zend_View_Helper_Showobjectimage'

Jest to aplikacja na modułach.

Pozdrawiam
ze4lot
Nie powinno się robić takich sztuczek ponadto patent działa Ci tylko na domyślnej akcji gdyż prawdopodobnie masz pokopane ścieżki do helperów.
"mam sobie helper który robi mi miniaturki" - helper przygotowuje do wyświetlania, robić miniaturki powinna jakaś osobna klasa/biblioteka.
Zrób np. dwa osobne helpery korzystające z partiala - wszystko jest uwarunkowane tym co dokładnie robią twoje skrypty i co chcesz osiągnąć.
zend
Cytat
Nie powinno się robić takich sztuczek
- mozesz rozwinąć? Pytam bo sam nieraz korzystam z takiej funkcjonalności i spisuje się naprawdę dobrze.

Jeśli ten helper do którego się odwołujesz jest w tym samym module, to taki problem nie powinien wystąpić. Natomiast jeśli helper jest w innym module w modules/xxx/script/helpers to musisz go przenieść do innej lokalizacji np My_View_Helper_TwojHelper, potem najlepiej w bootstrapie "zarejestrować" go $view -> registereHelper($helperinstance, "twojhelper");. Jeśli nie chcesz, to nie musisz go oczywiście przenosić, możesz też zrobić tak
  1. include_once "modules/xxx/scripts/helpers/TwojHelper.php"
  2. $view -> registerHelper( new Zend_View_Helper_TwojHelper(), 'twojHelper' );
irmidjusz
Z tego co pamiętam, jeśli chcesz użyć view helper z innego modułu, to nie było problemu z tym, gdy ów helper znajdował się w module default, czyli standardowo applications/views/helpers, zawsze go wówczas plugin loader znajdzie.
ShadowD
Standardowo katalogiem helperów jest tylko katalog views/helpers w module default, można dodać nowe katalogi, także w My_helpers wystarczy użyć komendy addHelperPath() można w ten sposób dodać sobie helpery w każdym module, niestety trzeba się bawić ręcznie z każdym oddzielnie. Loader przeszukuje wszystkie katalogi (w kolejności ich dodania) aż znajdzie odpowiedni helper.

steHelperPath() - podobne, ale przed dodaniem czyści całą listę więc nie mylić, lub rejestrować na początku, potem dodawać. :-)
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.