Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] + WAMP - problem
Forum PHP.pl > Forum > PHP > Frameworki
Piotrbaz
Witajcie,

Próbuję odpalić Zenda w połączeniu z WAMP. Niestety, coś pochrzaniłem z tymi scieżkami. Szukałem w google, na forum ZF, tutaj i niestety nic, dlatego zakładam nowy temat.

Sytuacja wygląda u mnie następująco:

WAMP:
Kod
C:\wamp


Zend: (wersja 1.12.0)
Kod
C:\ZendFramework


php.ini
Kod
; Windows: "\path1;\path2"
;include_path = ".;C:\ZendFramework\library"


Zmienne środowiskowe (Path):
Kod
C:\wamp\bin\php\php5.4.3\;C:\ZendFramework\bin


Generalnie już straciłem rachubę, bo próbowałem szukać rozwiązań przy użyciu kilku różnych "poradników".


Takie błędy otrzymuję, gdy odpalam public/index.php w stworzonym projekcie helloworld:
Cytat
SCREAM: Error suppression ignored for
Warning: require_once(Zend/Application.php): failed to open stream: No such file or directory in C:\wamp\www\ZFhelloworld\public\index.php on line 18
Call Stack
Fatal error: require_once(): Failed opening required 'Zend/Application.php' (include_path='C:\wamp\www\ZFhelloworld\library;.;C:\php\pear') in C:\wamp\www\ZFhelloworld\public\index.php on line 18



Gdzie jest błąd dobrzy ludzie ? worriedsmiley.gif
CuteOne
pokaz plik index.php
Piotrbaz
Kod
<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();


projekt utworzony po wydaniu polecenia zf create project . helloworld
W plikach nic nie ruszałem ; )
CuteOne
Też miałem z tym problemy sleep.gif

  1. <?php
  2. /**
  3. * Define paths
  4. */
  5. defined('ROOT_PATH') || define('ROOT_PATH', realpath(dirname(__FILE__) . '/../'));
  6. defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  7. defined('LIBRARY_PATH') || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));
  8. defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  9.  
  10. /**
  11. * Set include path with constaint paths
  12. */
  13. . PATH_SEPARATOR . LIBRARY_PATH
  14. . PATH_SEPARATOR . APPLICATION_PATH
  15. . PATH_SEPARATOR . get_include_path()
  16. );
  17.  
  18. /**
  19. * Start application
  20. */
  21. require_once 'Zend/Application.php';
  22.  
  23. $application = new Zend_Application(
  24. APPLICATION_ENV,
  25. APPLICATION_PATH . '/configs/application.ini'
  26. );
  27.  
  28. $application->bootstrap()
  29. ->run();


tylko pamiętaj o tym aby folder library/ był na równi z public i application

application/
library/
|--Zend/
public/
|--index.php
Piotrbaz
Hm przyznam, że nie ogarnąłem w czym jest problem withstupidsmiley.gif

Folder library w projekcie mam pusty (w książce napisane, że domyślnie pusty)

Mógłbyś wkleić swoje include_path z php.ini ? tongue.gif
CuteOne
To wyj** tą książkę tongue.gif w folderze library/ musi się znajdować folder Zend - czyli framework. Jeżeli każą korzystać z folderu Zenda, który jest w ścieżce X/Y/Z to niech się w tyłek pocałują (potem będziesz miał same problemy)

include_path mam zakomentowany


1. Stwórz sobie ręcznie folder "test" w "wamp/www/"
2. W folderze test stwórz trzy foldery:
- application
- library
- public
3. W library utwórz folder Zend i do niego wrzuć pliki frameworka
4. Do public i application przekopiuj pliki z poprzedniego projektu (tego, którego nie mogłeś odpalić)

Pamiętaj o włączeniu w http.conf mod_rewrite + mod_vhost (opcjonalnie ale przydaje się przy tworzeniu wielu aplikacji na tych samych plikach)
Piotrbaz
Czyli w każdym projekcie tworzonym przy użyciu ZF muszę mieć kopię folderu Zend umieszczoną w folderze /library ? oO

Jeśli tak, to czego sam mi tego nie wrzuca przy tworzeniu projektu ? ohmy.gif



Edit: no tak, już działa, przecież miałem zakomentowane include_path withstupidsmiley.gif

Jednak dalej ciekawy jestem, dlaczego library w projekcie jest puste, skoro powinny tam się znajdować biblioteki Zenda ;p
CuteOne
Jeżeli chcesz tworzyć więcej niż jeden projekt:

www/
|-aplikacjaA
| |-public
| |-application
|
|-aplikacjaB
| |-public
| |-application
|
|-library
| |-Zend
| |-MyLibs

Wtedy wystarczy dodać /../ do
  1. defined('LIBRARY_PATH') || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../../library'));
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.