Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konfiguracja Zend Studio dla ZendFramework
Forum PHP.pl > Forum > PHP > Frameworki
phpsuse
Witam,
Mam problem z prawidłowym skonfugurowaniem Zend Studio. Chciałem nauczyć sie korzystać z Zend Framework, a jako edytora używac Zend Studio dla Eclipsa. Zainstalowałem dodałem nowy projek ZendFramework.
Puszczam uruchomienie i w oknie konsoli wyskakuje mi błąd:

Compile Error: /srv/www/htdocs/myweb/iam/html/index.php line 10 - require_once(): Failed opening required 'Zend/Controller/Front.php' (include_path='.:../library:./application/default/models/:.:/usr/share/php5:/usr/share/php5/PEAR')

błąd dotyczy lini:

require_once 'Zend/Controller/Front.php';

Ale jak wejde w include path dla mojego projektu to mam ścieżkę podaną:

/home/username/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/

i kieruje ona do faktycznych plików.

Poniżej podam kod pliku index.php

  1. <?php
  2. /**
  3.  * My new Zend Framework project
  4.  * 
  5.  * @author
  6.  * @version 
  7.  */
  8.  
  9. set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . './application/default/models/' . PATH_SEPARATOR . get_include_path());
  10. require_once 'Zend/Controller/Front.php';
  11. require_once 'Zend/Layout.php';
  12.  
  13. // Setup controller
  14. $controller = Zend_Controller_Front::getInstance();
  15. $controller->setControllerDirectory('../application/default/controllers');
  16. $controller->throwExceptions(false); // should be turned on in development time 
  17.  
  18. // bootstrap layouts
  19. Zend_Layout::startMvc(array(
  20. 'layoutPath' => '../application/default/layouts',
  21. 'layout' => 'main'
  22. ));
  23.  
  24. // run!
  25. $controller->dispatch();
  26. ?>


Prosze o pomoc jak rozwiązać ten problem
LBO
No dobra, ale o il pamiętam pliki frameworka znajdują się jeszcze głębiej, w katalogu "library".
Nie używałem nowego Zend Studio, więc mogę się mylić.
phpsuse
sprawdzalem ścieżkę i faktycznie znajduje się tam plik front.php

Kod i ścięzka do zaincludowania wygenerowana automatycznie przez Zend Studio
LBO
w tej
Kod
/home/username/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Controller/Front.php

ścieżce?
phpsuse
Cytat(LBO @ 22.06.2008, 12:31:38 ) *
w tej
Kod
/home/username/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Controller/Front.php

ścieżce?


tak !
LBO
spróbuj w jakimś innym pliku na poziomie index.php zrobić tego include'a.

Ewentualnie wcale nie masz tego w include_path
Kod
(include_path='.:../library:./application/default/models/:.:/usr/share/php5:/usr/share/php5/PEAR')


wyraźnie na to wskazuje.

edit:

I czy przypadkiem do include_path nie podaje się bezwzględnych ścieżek? Czego nie robisz.

Najlepiej zdebugować to. wklej to w swoim index.php - co wyskakuje?
  1. <?php
  2. /**
  3. * My new Zend Framework project
  4. *
  5. * @author
  6. * @version
  7. */
  8. ?>
  9. <pre><?php print_r(get_include_path());?></pre>
  10. <?php
  11. set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . './application/default/models/' . PATH_SEPARATOR . get_include_path());
  12. ?>
  13. <pre><?php print_r(get_include_path());?></pre>
  14. <?php
  15. require_once 'Zend/Controller/Front.php';
  16. require_once 'Zend/Layout.php';
  17.  
  18. // Setup controller
  19. /*$controller = Zend_Controller_Front::getInstance();
  20. $controller->setControllerDirectory('../application/default/controllers');
  21. $controller->throwExceptions(false); // should be turned on in development time
  22.  
  23. // bootstrap layouts
  24. Zend_Layout::startMvc(array(
  25. 'layoutPath' => '../application/default/layouts',
  26. 'layout' => 'main'
  27. ));
  28.  
  29. // run!
  30. $controller->dispatch();*/
phpsuse
nie wyskakuja żadne błedy. Chyba jest ok !
A co byl nie tak. Bo w końcu otwarłem nowy projekt zend framework i to samo było, w takim razie zend studio generuje na starcie trefny kod ?

Dzięki,
LBO
Bo błędy nie mają wyskakiwać.

Chciałem, żebyś porównał include_path sprzed i po modyfikacji.
phpsuse
Sorry jednak cos nie tak pusciłem debug i wyszło:

Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/HeadTitle.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/Placeholder.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/DocType.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(/home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Helper/DocType.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/DocType.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(/home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Helper/DocType.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory
Debug Error: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php line 1004 - Uncaught exception 'Zend_View_Exception' with message 'helper 'DocType' not found in path' in /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php:1004
Stack trace:
#0 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php(497): Zend_View_Abstract->_loadClass('helper', 'DocType')
#1 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php(294): Zend_View_Abstract->getHelper('docType')
#2 [internal function]: Zend_View_Abstract->__call('docType', Array)
#3 /srv/www/htdocs/myweb/iam/application/default/layouts/main.phtml(11): Zend_View->docType()
#4 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View.php(46): include('/srv/www/htdocs...')
#5 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php(769): Zend_View->_run('../application/...')
#6 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Layout.php(729): Zend_View_Abstract->render('main.phtml')
#7 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Layout/Controller/Plugin/Layout.php(142): Zend_Layout->render()
#8 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Controller/Plugin/Broker.php(337): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http))
#9 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Controller/Front.php(
LBO
Zakomentuj jeszcze te dwa require_once" title="Zobacz w manualu PHP" target="_manual i wtedy przeklej.

I jeszcze jedna sprawa - jak to sprawdzasz? Spod Zend Studio, czy spod localhosta?
phpsuse
zrobiłem tak :

  1. <?php
  2. /**
  3.  * My new Zend Framework project
  4.  * 
  5.  * @author
  6.  * @version 
  7.  */
  8.  
  9. set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . './application/default/models/' . PATH_SEPARATOR . get_include_path());
  10. //require_once 'Zend/Controller/Front.php';
  11. //require_once 'Zend/Layout.php';
  12.  
  13. // Setup controller
  14. $controller = Zend_Controller_Front::getInstance();
  15. $controller->setControllerDirectory('../application/default/controllers');
  16. $controller->throwExceptions(false); // should be turned on in development time 
  17.  
  18. // bootstrap layouts
  19. Zend_Layout::startMvc(array(
  20. 'layoutPath' => '../application/default/layouts',
  21. 'layout' => 'main'
  22. ));
  23.  
  24. // run!
  25. $controller->dispatch();
  26. ?>

Uruchomiłem i nic pusta strona (localhost i ściezka)

Pod debugerem Zend Studio:

Debug Error: /iam/html/index.php line 14 - Class 'Zend_Controller_Front' not found
LBO
Wklej całośc do index.php - zastąp to co tam masz - nie usunąłem twojego kodu, tylko zakomentowałem.
  1. <?php
  2. /**
  3. * My new Zend Framework project
  4. *
  5. * @author
  6. * @version
  7. */
  8. ?>
  9. <pre><?php print_r(get_include_path());?></pre>
  10. <?php
  11. set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . './application/default/models/' . PATH_SEPARATOR . get_include_path());
  12. ?>
  13. <pre><?php print_r(get_include_path());?></pre>
  14. <?php
  15. //require_once 'Zend/Controller/Front.php';
  16. //require_once 'Zend/Layout.php';
  17.  
  18. // Setup controller
  19. /*$controller = Zend_Controller_Front::getInstance();
  20. $controller->setControllerDirectory('../application/default/controllers');
  21. $controller->throwExceptions(false); // should be turned on in development time
  22.  
  23. // bootstrap layouts
  24. Zend_Layout::startMvc(array(
  25. 'layoutPath' => '../application/default/layouts',
  26. 'layout' => 'main'
  27. ));
  28.  
  29. // run!
  30. $controller->dispatch();*/
phpsuse
.:/usr/share/php5:/usr/share/php5/PEAR


.:../library:./application/default/models/:.:/usr/share/php5:/usr/share/php5/PEAR
LBO
Nie masz ustawionego include_path do ZF.

I pojawia się znów pytanie - gdzie sprawdzasz kod? w przeglądarce, czy w Zend Studio?
phpsuse
to co i gdzie mam zrobić żeby ustawic dostęp ?

w przeglądarce sprawdzam wynik

czy może gdzies trzeba wyedytować plik php.ini ?
LBO
Dokładnie

Zend Studio korzysta z własnego folderu z ZF i własnego php.exe.

Wyedytuj:

Kod
/usr/share/php5/php.ini


i dodaj odpowiednia ścieżkę. (mam nadzieje że na linuksach php.ini też znajduje się w katalogu z php.exe)
phpsuse
Cytat(LBO @ 22.06.2008, 13:33:43 ) *
Dokładnie

Zend Studio korzysta z własnego folderu z ZF i własnego php.exe.

Wyedytuj:

Kod
/usr/share/php5/php.ini


i dodaj odpowiednia ścieżkę. (mam nadzieje że na linuksach php.ini też znajduje się w katalogu z php.exe)


Kurcze ale jak ta linika ma wygradać do ma ją dodać ?
LBO
Odsyłam do manuala - to są podstawy.
phpsuse
wstawilem linike do php.ini

uruchomiłem pod przeglądarką i ma coś takiego :


/home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/
.:../library:./application/default/models/:/home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/



Teraz ja wstawie standardowy pusty projekt z ZendStudio to mam błędy w debugerze:

Kod
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/HeadTitle.php): failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/Placeholder.php): failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/DocType.php): failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(/home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Helper/DocType.php): failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(../application/default/views/helpers/DocType.php): failed to open stream: No such file or directory
Debug Warning: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Loader.php line 160 - fopen(/home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Helper/DocType.php): failed to open stream: No such file or directory
Debug Error: /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php line 1004 - Uncaught exception 'Zend_View_Exception' with message 'helper 'DocType' not found in path' in /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php:1004
Stack trace:
#0 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php(497): Zend_View_Abstract->_loadClass('helper', 'DocType')
#1 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php(294): Zend_View_Abstract->getHelper('docType')
#2 [internal function]: Zend_View_Abstract->__call('docType', Array)
#3 /srv/www/htdocs/myweb/iam/application/default/layouts/main.phtml(11): Zend_View->docType()
#4 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View.php(46): include('/srv/www/htdocs...')
#5 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/View/Abstract.php(769): Zend_View->_run('../application/...')
#6 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Layout.php(729): Zend_View_Abstract->render('main.phtml')
#7 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Layout/Controller/Plugin/Layout.php(142): Zend_Layout->render()
#8 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Controller/Plugin/Broker.php(337): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http))
#9 /home/przemek/Zend/ZendStudioForEclipse-6.0.1/plugins/org.zend.php.framework.resource_6.0.1.v20080601/resources/ZendFramework_1.5/Zend/Controller/Front.php(


A w przeglądarce strona sie nie pokazuje. Pusta strona bez kodu

Co robić ?
batman
@phpsuse
Jeśli wklejasz kod php, to używaj znaczników bbcode.
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.