Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zend_application
Forum PHP.pl > Forum > PHP > Frameworki
sonicius
Gdzie można znależć liste wszystkich zasobów (resources), które domyślnie można użyć w application.ini przy Zend_Application.

pgrzelka
library/Zend/Application/Resource
sonicius
A więc ok spróbowałem stworzyć modułową strukturę przy pomocy Zend_application, ale jeszcze nie do końca wszystko działa jak powinno...:

1) Struktura katalogowa
  1. mkdir -p public/css
  2. mkdir -p public/img
  3. mkdir -p public/js
  4.  
  5. mkdir -p application/configs/ //application.ini
  6. mkdir -p application/layouts/scripts
  7.  
  8. // Moduł domyśłny
  9. mkdir -p application/default/models
  10. mkdir -p application/default/views
  11. mkdir -p application/default/controllers
  12. mkdir -p application/default/models
  13. mkdir -p application/default/views/scripts/index
  14. mkdir -p application/default/views/scripts/error
  15.  
  16. // Inne moduły (np. moduł blog-a)
  17. mkdir -p application/modules/blog/controllers
  18. mkdir -p application/modules/blog/models
  19. mkdir -p application/modules/blog/views/scripts/index
  20. mkdir -p application/modules/blog/views/scripts/error
  21.  
  22. mkdir -p library/Zend


2) Struktura application.ini

  1. [production]
  2.  
  3. # Debug output
  4. phpSettings.display_startup_errors = 0
  5. phpSettings.display_errors = 0
  6.  
  7. # Include path
  8. includePaths.library = APPLICATION_PATH "/../library"
  9.  
  10. # Bootstrap
  11. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  12. bootstrap.class = "Bootstrap"
  13.  
  14. [b]# Front Controller
  15. resources.frontController.controllerDirectory.default = APPLICATION_PATH "/default/controllers"
  16. [color="#808080"]#resources.frontController.controllerDirectory.blog = APPLICATION_PATH "/blog/controllers"[/color]
  17. resources.frontController.moduleControllerDirectoryName = "controllers"
  18. resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  19. resources.frontController.defaultControllerName = "index"
  20. resources.frontController.defaultAction = "index"
  21. resources.frontController.defaultModule = "default"
  22. resources.modules[] =[/b]
  23.  
  24. resources.frontController.env = APPLICATION_ENV
  25.  
  26. # Layout
  27. resources.layout.layout = "layout"
  28. resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
  29.  
  30. # Views
  31. resources.view.encoding = "UTF-8"
  32. resources.view.basePath = APPLICATION_PATH "/views/"
  33.  
  34. [b][u]# Baza danych dla modułu domyślnego[/u]
  35. resources.db.adapter = "pdo_mysql"
  36. resources.db.params.host = "localhost"
  37. resources.db.params.username = "root"
  38. resources.db.params.password = ""
  39. resources.db.params.dbname = "loader"
  40. resources.db.params.charset = "utf8"
  41. resources.db.isDefaultTableAdapter = true
  42. [u]
  43. # Baza danych dla modułu BLOG[/u]
  44. blog.resources.db.adapter = "pdo_mysql"
  45. blog.resources.db.params.host = "localhost"
  46. blog.resources.db.params.username = "root2"
  47. blog.resources.db.params.password = ""
  48. blog.resources.db.params.dbname = "blog"
  49. blog.resources.db.params.charset = "utf8"[/b]
  50.  
  51. # Session
  52. resources.session.save_path = APPLICATION_PATH "/../data/session"
  53. resources.session.remember_me_seconds = 43200
  54. #864000


3) Bootstrap
  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3. function _initView()
  4. {
  5. $view = new Zend_View();
  6. $view->doctype('XHTML1_STRICT');
  7. $view->headTitle('My Project');
  8. $view->env = APPLICATION_ENV;
  9.  
  10. // Add it to the ViewRenderer
  11. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
  12. 'ViewRenderer'
  13. );
  14. $viewRenderer->setView($view);
  15.  
  16. // Return it, so that it can be stored by the bootstrap
  17. return $view;
  18. }


Wywołanie adresu http://zendproject.local/ prawidłowo skutkuje wywołaniem modułu domyślnego default/index/index
Natomiast http://zendproject.local/blog również prawidłowo wywołuje moduł blog/index/index

Nie wiem natomiast dlaczego dla obu modułów jest inicjowane połączenie z domyślną bazą danych, dla modułu blog chciałbym skorzystać z połączenia do bazy wynikającego z ustawienia w application.ini
  1. # Baza danych dla modułu BLOG[/u]
  2. blog.resources.db.adapter = "pdo_mysql"
  3. blog.resources.db.params.host = "localhost"
  4. blog.resources.db.params.username = "root2"
  5. blog.resources.db.params.password = ""
  6. blog.resources.db.params.dbname = "blog"
  7. blog.resources.db.params.charset = "utf8"


Czego więc brakuje w ustawieniach?

Zaznacze, że korzystałem z manuala: link
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.