Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Zend] cannot redeclare class zend_loader (rozwiazane, do zamkniecia)
Forum PHP.pl > Forum > Przedszkole
greggg
Witam, podczas przerabiania książki "Zend Framework - od podstaw" Włodzimierza Gajdy natknąłem się na problem przy rozwiązywaniu jednego z przykładów.
Jest to przykład 34. jeśli ktoś posiada tę książkę. Przykłady w przypadku tej książki to opisy rozwiązań danego problemu, a pomimo tego mam problem. Są również dostępne już napisane projekty z tej książki na ftp helionu, ale nie wiem czy można tutaj link podawać czy jest to sprzeczne z jakimiś prawami autorskimi..

Jest mały projekt z 2 tabelami w bazie danych , user i tatry.

Dodawanie kont do aplikacji jest przedstawione tak:

Na początek, wydajemy komendy:
Cytat
zf create db-table User user
zf create project-provider user create


kod pliku providers/UserProvider.php

  1. <?php
  2.  
  3. require_once 'Zend/Tool/Project/Provider/Abstract.php';
  4. require_once 'Zend/Tool/Project/Provider/Exception.php';
  5.  
  6. class UserProvider extends Zend_Tool_Project_Provider_Abstract
  7. {
  8.  
  9. public function create($username = '', $password = '')
  10. {
  11.  
  12.  
  13. $username = trim(strtolower($username));
  14. $password = trim(strtolower($password));
  15.  
  16. if ((!$username) || (!$password)) {
  17. $this->_registry
  18. ->getResponse()
  19. ->appendContent("Podaj nazwe konta i haslo.");
  20. return;
  21. }
  22.  
  23. // Define path to application directory
  24. defined('APPLICATION_PATH')
  25. || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  26.  
  27. // Define application environment
  28. defined('APPLICATION_ENV')
  29. || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
  30.  
  31. // Ensure library/ is on include_path
  32. set_include_path(implode(PATH_SEPARATOR, array(
  33. realpath(APPLICATION_PATH . '/../library'),
  34. )));
  35.  
  36. /** Zend_Application */
  37. require_once 'Zend/Application.php';
  38.  
  39. // Create application, bootstrap, and run
  40. $application = new Zend_Application(
  41. APPLICATION_ENV,
  42. APPLICATION_PATH . '/configs/application.ini'
  43. );
  44. $application->bootstrap('db');
  45.  
  46.  
  47. $User = new Application_Model_DbTable_User();
  48.  
  49. $dane = array(
  50. 'username' => $username,
  51. 'password' => $password,
  52. );
  53.  
  54. $User->createRow($dane)->save();
  55.  
  56.  
  57. }
  58.  
  59.  
  60. }
  61.  
  62.  


Następnie wpisuję komendę :
Cytat
zf create user nazwa haslo


i pokazuje mi bląd:

Fatal error: Cannot redeclare class Zend_Loader in line 31

w googlach znalazłem, że w application.ini trzeba zakomentować linijke
includePaths.library = APPLICATION_PATH "/../library"

ale to nie rozwiązuje problemu.

Ma ktoś jakiś pomysł?
Czy za mało informacji podałem by móc go rozwiązać?

Nie wiedziałem czy dodać to do przedszkola czy działu poświęconego frameworkom, ale ten chyba jest częściej odwiedzany.


///////////////////////////////////////////////////////////////////////////////////////////////
UPDATE:


No dobrze temat do zamknięcia.

w UserProvider.php zakomentowałem:
  1. set_include_path(implode(PATH_SEPARATOR, array(
  2. realpath(APPLICATION_PATH . '/../library'),
  3. )));


w application.ini zakomentowane
Cytat
includePaths.library = APPLICATION_PATH "/../library"


i po wpisaniu komendy "zf create user name pass" dodaje mi do bazy danych użytkowników.

Pozdrawiam smile.gif
pshemko
Nie trzeba nic /* ;komentować */ wystarczy ze zmienimy nazwę katalogu biblioteki Zend na inną, np. Zend2 i działa wywołanie polecenia "zf create user login hasło".

Działa też w przypadku gdy chcemy użyć funkcji skrótu md5 lub sha1 opisanej w książce Włodzimierz Gajda "Zend Framework od podstaw".

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.