Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zend_Application zawsze ładuje wszystkie metody typu "init" z Bootstrapa
Forum PHP.pl > Forum > PHP > Frameworki
drPayton
Witam!

Wg manuala:
  1. $bootstrap->bootstrap('foo');
  2. //czy też
  3. $bootstrap->bootstrap(array('foo', 'bar'));

Spowoduje załadowanie tylko tych podanych metod.

Nie wiem, co jest grane, ale mi zawsze ładuje wszystkie, niezależnie od tego czy je wymienię jako ten parametr czy też nie...

Wszystko idzie po default'cie z manuala (?) ^^
http://framework.zend.com/manual/en/zend.a...-operation.html

config
Kod
phpSettings.display_startup_errors = 1
phpSettings.display_errors            = 1
    
includePaths.library = APPLICATION_PATH "/../library"
    
bootstrap.path  = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

resources.view[] =
    
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

resources.layout.layout     = "default"
resources.layout.viewSuffix = "inc"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
    
resources.view.viewSuffix = "inc"



index:
  1. defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  2.  
  3. defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  4.  
  5. set_include_path(implode(PATH_SEPARATOR, array(
  6. realpath(APPLICATION_PATH . '/../library'),
  7. )));
  8.  
  9. require_once 'Zend/Application.php';
  10.  
  11. $oApplication = new Zend_Application(
  12. APPLICATION_ENV,
  13. APPLICATION_PATH . '/configs/application.ini'
  14. );
  15.  
  16. $oApplication->bootstrap('view')->run();


Bootstrap:
  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3. protected function _initFoo()
  4. {
  5. echo "<br>Test<br>";
  6. }
  7. /**
  8.   * View Resource Method
  9.   *
  10.   * @return object Obiekt widoku
  11.   */
  12. protected function _initView()
  13. {
  14. try {
  15.  
  16. $oView = new Zend_View();
  17.  
  18. $oView->doctype('XHTML1_STRICT');
  19.  
  20. $oViewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
  21.  
  22. $oViewRenderer->setView($oView);
  23.  
  24. $oViewRenderer->setViewSuffix("inc");
  25.  
  26. return $oView;
  27. } catch(Exception $oException) {}
  28. }
  29. }
  30.  


W podanym przykłądzie metoda _initFoo jest wywoływana, choc jak na mój gust nei powinna ^^ Powie mi ktoś, o co tu chodzi?
paq85
Witam.

Wydaje mi się, że metoda run klasy Zend_Application powoduje po prostu wywołanie run bootstrap-era, bez żadnych parametrów.

Dlatego najpierw inicjalizuje (zgodnie z twoim zamysłem) "view" a następnie całą resztę ("view" być może też kolejny raz).

Krótki opis metody Zend_Application->run()

Call the bootstrap's run() method to dispatch the application.


wg. http://framework.zend.com/manual/en/zend.a...ity.application



Ale nie jestem na 100% pewien... winksmiley.jpg

PS sorry za wygląd postu, ale dopiero zaczynam przygodę z tym forum
drPayton
Testowo usunąłem run(). Dispatch oczywiście nie poszedł, jednak metoda _initFoo() została wykonana. Więc to chyba nie tu leży problem winksmiley.jpg

@down: Sprawdzę jutro rano, ale pewnie masz rację winksmiley.jpg
seth-kk
uzywasz metode bootstrap na zlym obiekcie,
bootstrap() z Zend_Application_Bootstrap przyjmuje zasoby jako parametr, bootstrap() z Zend_Application nie
drPayton
Tia, pokarało mnie za lenistwo, nie spojrzałem w kod. No cóż, burzy to trochę moje plany związane z zend_application ale trudno tongue.gif Dzięki 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.