Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] nie wczytuje bootstrap.php
Forum PHP.pl > Forum > PHP > Frameworki
cholew
Witam,

Niedawno zacząłem z ZF i mam problem z plikiem bootstrap.php, w ogóle go nie wczytuje. Dodaje funkcje w bootstrap.php które zawierają 'echo' ale nic nie wyświetla. Gdzie mogę szukać przyczyny? Szukałem dość długo w internecie, jednak nie znalazłem nigdzie odpowiedzi.
darko
Pokaż ten bootstrap i napisz jeszcze czy korzystasz z budowy modułowej, wszelkie echo/print etc. tam jest niewskazane.
cholew
Korzystam z budowy modułowej, wiem że echo/print jest tam niewskazane, ale umieszczam tylko w celu sprawdzenia czy w ogóle ten plik jest wczytywany. A zawartość bootstrap.php to sama podstawa czyli:
  1. <?php
  2. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  3. {
  4.  
  5. }
darko
W przypadku budowy modułowej Twój bootstrap powinien dziedziczyć z klasy Zend_Application_Module_Bootstrap. Poza tym upewnij się, że w application.ini masz:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
ShadowD
Przypominam że nazwy metod muszą zaczynać się od _init...
cholew
zmieniłem nazwę klasy z której dziedziczy, w application.ini mam tak jak podałeś... dalej nie wczytuje ;/
Riggs
A w jakiej metodzie robisz to echo? I czy robisz to w Bootstrapie modułu czy też w głównym Bootstrap aplikacji?
cholew
robię to w gł. bootstrapie aplikacji czyli w application/bootstrap.php
  1. <?php
  2. echo 'test1';
  3. class Bootstrap extends Zend_Application_Module_Bootstrap
  4. {
  5. public function _initTest() {
  6. echo 'test2';
  7. }
  8. }


i nic...
darko
...oraz gdzie wrzuciłeś plik bootstrap w stosunku do reszty plików całego modułu?
cholew
tak jak napisałem, znajduje się w application/bootstrap.php
darko
Powinien w modules/User (czy jak tam masz nazwany folder z modułami), gdzie User to przykładowa nazwa modułu o nazwie User.
Zobacz, jak to wujek Batman ładnie opisał wink.gif
cholew
przeniosłem do modules/default i także nie działa.
A gdzie w takim wypadku powinien znajdować się główny bootstrap?
Psajkus
Główny bootstrap powinien znajdowac sie w application/Bootstrap.php i powien wygladac tak:

  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3.  
  4. }


W kazdym module mozesz dodac sobie kolejny boottsrap. Np dla modulu default powinien znajdować się w application/modules/default/Bootstrap.php i pownien wygladac tak:
  1. class Default_Bootstrap extends Zend_Application_Module_Bootstrap
  2. {
  3.  
  4. }
  5.  
CuteOne
Nie róbcie mu wody z mózgu.
1. Jeżeli aplikacja jest modułowa Bootstrap powinien się znajdować a application/Bootstrap.php
  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { }

oraz w każdym module
  1. class [nazwa modulu]_Bootstrap extends Zend_Application_Module_Bootstrap { }

2. W application.ini musisz podać ścieżkę i nazwę klasy bootstrapa
Kod
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

3. Nazwy metod muszą się rozpoczynać od _init i muszą być publiczne
irmidjusz
Cytat(CuteOne @ 4.09.2012, 15:23:34 ) *
Nie róbcie mu wody z mózgu.
1. Jeżeli aplikacja jest modułowa Bootstrap powinien się znajdować a application/Bootstrap.php
  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { }

oraz w każdym module
  1. class [nazwa modulu]_Bootstrap extends Zend_Application_Module_Bootstrap { }

2. W application.ini musisz podać ścieżkę i nazwę klasy bootstrapa
Kod
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

3. Nazwy metod muszą się rozpoczynać od _init i muszą być publiczne


metody _init nie muszą być publiczne, standardowo są protected i jest ok
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.