Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Tworzenie projektu
Forum PHP.pl > Forum > PHP > Frameworki
istrd
Witam,
Mam problem. Utworzyłem projekt i chcę przenieść plik index.php z /var/www/panel/public do /panel/ ale nie wiem jak poustawiać ścieżki żeby działało. Utworzyłem virutalhost na /var/www/panel/ ale nie wiem jak poustawiać ścieżki w index.php i application.ini może ktoś poprawić

Application
  1. [production]
  2. phpSettings.display_startup_errors = 1
  3. phpSettings.display_errors = 1
  4. includePaths.library = APPLICATION_PATH "/../library"
  5. bootstrap.path = APPLICATION_PATH "./application/Bootstrap.php"
  6. bootstrap.class = "Bootstrap"
  7. appnamespace = "Application"
  8. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  9. resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
  10. resources.view[] = ""
  11. autoloadernamespaces[] = "My"
  12. pluginpaths.My_Application_Resource = APPLICATION_PATH "./library/My/Application/Resource"
  13.  
  14. resources.db.adapter = "pdo_mysql"
  15. resources.db.params.host = "localhost"
  16. resources.db.params.username = "xxx"
  17. resources.db.params.password = "xxx"
  18. resources.db.params.dbname = "panel"
  19. resources.db.params.charset = "utf8"
  20. resources.db.isDefaultTableAdapter = true
  21.  
  22. [staging : production]
  23. phpSettings.display_startup_errors = 1
  24. phpSettings.display_errors = 1
  25.  
  26. [testing : production]
  27. phpSettings.display_startup_errors = 1
  28. phpSettings.display_errors = 1
  29.  
  30. [development : production]
  31. phpSettings.display_startup_errors = 1
  32. phpSettings.display_errors = 1


index.php
  1. <?php
  2. error_reporting(E_ALL|E_STRICT);
  3. date_default_timezone_set('Europe/London');
  4. set_include_path('.' . PATH_SEPARATOR . './library'
  5. . PATH_SEPARATOR . './application/models/'
  6. . PATH_SEPARATOR . get_include_path());
  7.  
  8. include "Zend/Loader.php";
  9. Zend_Loader::loadClass('Zend_Controller_Front');
  10. Zend_Loader::loadClass('Zend_Config_Ini');
  11. Zend_Loader::loadClass('Zend_Registry');
  12. Zend_Loader::loadClass('Zend_Db');
  13. Zend_Loader::loadClass('Zend_Db_Table');
  14. Zend_Loader::loadClass('Zend_Paginator');
  15. Zend_Loader::loadClass('Zend_Paginator_Adapter_DbSelect');
  16. Zend_Loader::loadClass('Zend_View_Helper_PaginationControl');
  17.  
  18.  
  19. // setup controller
  20. $frontController = Zend_Controller_Front::getInstance();
  21. $frontController->throwExceptions(true);
  22. $frontController->setControllerDirectory('./application/controllers');
  23.  
  24. //// load configuration
  25. $config = new Zend_Config_Ini('./application/config.ini','general');
  26. $registry=Zend_Registry::getInstance();
  27. $registry->set('config','$config');
  28.  
  29. /// setup database
  30. $db=Zend_Db::factory($config->db->adapter,$config->db->config->toArray());
  31. Zend_Db_Table::setDefaultAdapter($db);
  32.  
  33.  
  34.  
  35. // run!
  36. $frontController->dispatch();


lipek3
Domyślnie nie powineneś nic zmieniać w projekcie tylko dodać w ustawieniach apache linie
DocumentRoot /var/www/panel/public
istrd
Cytat(lipek3 @ 17.05.2012, 18:10:48 ) *
Domyślnie nie powineneś nic zmieniać w projekcie tylko dodać w ustawieniach apache linie
DocumentRoot /var/www/panel/public


Jakiś czas temu. Jak były starsze wersje nic to nie zmieniało i łatwo dało się to ustawić. Więc myślę że to nie jest jakiś problem. Może ktoś pomóc?
droslaw
Pierwsze zrób porządek ze scieżkami w konfiguracji:
  1. includePaths.library = APPLICATION_PATH "/../library"
  2. // zamiast bootstrap.path = APPLICATION_PATH "./application/Bootstrap.php" daj
  3. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  4. // zamiast pluginpaths.My_Application_Resource = APPLICATION_PATH "./library/My/Application/Resource"
  5. pluginpaths.My_Application_Resource = APPLICATION_PATH "/../library/My/Application/Resource"

Reszta wygląda tu dobrze.
W index.php zdefinuij stałą APPLICATION_PATH.
  1. // APPLICATION_PATH zawsze powinna wskazywać na Twój katalog application
  2. //więc jeśli index.php masz w katalogu panel dajesz:
  3. define('APPLICATION_PATH', realpath(dirname(__FILE__)."/application"));
  4. // jeśli w public
  5. // define('APPLICATION_PATH', realpath(dirname(__FILE__)."/../application"));
  6. // chcesz chyba ładować klasy z katologu library
  7. set_include_path(realpath(APPLICATION_PATH. '/../library').PATH_SEPARATOR.get_include_path());
  8. // Dalej ścieżki ustawiasz względem APPLICATION_PATH np:
  9. $frontController->setControllerDirectory('APPLICATION_PATH."/controllers");

Jeśli wszystkie ścieżki będziesz miał ustawione względem APPLICATION_PATH, po zmianie położenia index.php wystarczy zmienić jedną linijkę tak jak to jest opisane w komentarzach. Nie zapomnij przenieść jeszcze .htaccess i zmienić jego zawartości na bezpieczną w tej konfiguracji, tak jak jest to opisane tu http://forum.php.pl/index.php?s=&showt...st&p=940243

Z której wersji zenda korzystasz. Chyba możesz użyć klasy Zend_Application, pomogłaby uruchomić cała aplikację.
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.