Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Zend] Przekazywanie zmiennych
Forum PHP.pl > Forum > PHP > Frameworki
sleedz
Witam.
Chcę przekazać zmienną z bootstrap do klasy w bibliotece i nie za bardzo wiem jak to zrobić. A nigdzie nie ma nic na ten temat.
Pozdrawiam
Psajkus
w bottstrapie:
  1. Zend_Registry::set('moja_zmienna', $zmienna);


w klasie:
  1. $moja_zmienna = Zend_Registry::get('moja_zmienna');
ShadowD
Może przekazać w parametrze lub stworzyć jakiś getter? Nie wiem czy rejestr to dobra opcja..
Psajkus
Cytat(ShadowD @ 20.01.2012, 12:42:33 ) *
Nie wiem czy rejestr to dobra opcja..


Dlaczego niedobra?
snapshot
Zend_Registry to czyste zło. Równie dobrze można korzystać z global. Z tego co pamiętam to w bootstrap robisz metodę chronioną _initZmienna, zwracasz w niej wartość którą chcesz uzyskać. Potem w kontrolerze odwołujesz się do tego poprzez:
  1. $bootstrap = $this->getInvokeArg('bootstrap');
  2. $this->locale = $bootstrap->getResource('zmienna');
Psajkus
hmm... musze poczytac i spradzic czy to takie wielkie zuo wink.gif

dot. tenatu:
jak chcesz pobrac zmienna w sposob podany przez @snapshot, ale nie w kontrolerze to robisz tak:
  1. $zmienna= Zend_Controller_Front::getInstance()
  2. ->getParam('bootstrap')
  3. ->getResource('zmienna');
snapshot
Można tak, ale jest to podobne do wcześniej wspomnianego Zend_Registry. Od tego jest kontroler aby przekazywać do obiektów z bibliotek dane. Oczywiście tak jest wygodniej, ale po jakimś czasie albo kod stanie się nie elastyczny, albo nie będziemy w stanie zapanować nad aplikacją. Takie jest moje zdanie w tym temacie smile.gif
ShadowD
Cytat(snapshot @ 20.01.2012, 14:07:31 ) *
Można tak, ale jest to podobne do wcześniej wspomnianego Zend_Registry. Od tego jest kontroler aby przekazywać do obiektów z bibliotek dane. Oczywiście tak jest wygodniej, ale po jakimś czasie albo kod stanie się nie elastyczny, albo nie będziemy w stanie zapanować nad aplikacją. Takie jest moje zdanie w tym temacie smile.gif

Właśnie dlatego sądzę, że rejestr nie służy do tego, dodając zmienną do niego udostępniasz ją CAŁEJ aplikacji, a w jakim celu widok ma znać np. dane połączenia z mysql? (Przykład przejaskrawiony, ale oddaje sens)

Rejestr jest bardzo często porównywany do zmiennych globalnych i jest to moim zdaniem słuszne porównanie, bo różnic nie sposób podać oczywiście pomijając implementację język z core zf.
snapshot
Dokładnie to samo napisałem wyżej 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.