[Doctrine][ZF] Błąd podczas ładowania modelu |
[Doctrine][ZF] Błąd podczas ładowania modelu |
12.11.2009, 01:58:48
Post
#1
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 6 Dołączył: 22.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Zintegrowałem Doctrine z Zendem. O ile integracja ZF 1.9 z Doctrine 1.1 była bezproblemowa, to przejście na doctrine 1.2 już stworzyło problem. Zamieniłem pliki z biblioteką doctrine i pojawia się błąd:
Kod Fatal error: Class 'BaseVideo' not found in C:\wamp\www\musictube\application\models\Video.php on line 15 Call Stack # Time Memory Function Location 1 0.0033 364112 {main}( ) ..\index.php:0 2 0.2331 5746704 Zend_Application->run( ) ..\index.php:26 3 0.2331 5746704 Zend_Application_Bootstrap_Bootstrap->run( ) ..\Application.php:358 4 0.2339 5746880 Zend_Controller_Front->dispatch( ) ..\Bootstrap.php:77 5 0.2610 6407128 Zend_Controller_Dispatcher_Standard->dispatch( ) ..\Front.php:946 6 0.2843 6697440 Zend_Controller_Action->dispatch( ) ..\Standard.php:289 7 0.2848 6700656 IndexController->indexAction( ) ..\Action.php:513 8 0.2850 6700736 Doctrine_Core::getTable( ) ..\IndexController.php:30 9 0.2851 6700736 Doctrine_Manager->getConnectionForComponent( ) ..\Core.php:1071 10 0.2851 6700736 Doctrine_Core::modelsAutoload( ) ..\Manager.php:550 11 0.2858 6719472 require( 'C:\wamp\www\musictube\application\models\Video.php' ) ..\Core.php:1123 Czyli jakby przestawał widzieć plik bazowy w models/generated. Co to może być? -------------------- ZF developer
|
|
|
12.11.2009, 10:30:52
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 13.04.2007 Skąd: Szczecin Ostrzeżenie: (0%) |
http://www.doctrine-project.org/upgrade/1_2
czytales to? Ten post edytował murwazy 12.11.2009, 10:36:20 |
|
|
12.11.2009, 13:54:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 6 Dołączył: 22.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Wcześniej nie, ale dalej nie widzę tam nic co by mogło być przyczyną. Najdziwniejsze jest to że gdy mam ustawione:
Kod $manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_AGGRESSIVE); To ma problem z ładowaniem innego modelu (base) z którego w tej chwili nie korzystam: Kod Fatal error: Class 'BaseArtist' not found in C:\wamp\www\musictube\application\models\Video.php on line 15 Dodałem mu natomiast przed deklaracją klasy Artist: Kod require_once 'generated/BaseArtist.php'; I wtedy WSZYSTKO działa. Nawet inne modele w których tego nie ustawiłem. Ten post edytował snapshot 12.11.2009, 13:54:32 -------------------- ZF developer
|
|
|
12.11.2009, 14:58:17
Post
#4
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 13.04.2007 Skąd: Szczecin Ostrzeżenie: (0%) |
no wiesz - skoro nie moze zaladowac klasy to oznacza ze sciezki sa zle...
|
|
|
12.11.2009, 15:16:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 6 Dołączył: 22.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Mam strukture
Kod /application /models Video.php /generated BaseVideo.php Model rozszerzalny np: Video.php ładuje dobrze. Natomiast gdy chce załadować BaseVideo.php to się wywala. Ścieżki do Base... się nigdzie nie ustawia, domyślnie jest właśnie do katalogu /generated ustawiona i nic w związku z tym nie zmieniałem. Przypominam, że w wersji 1.1 działa bez problemu Ten post edytował snapshot 12.11.2009, 15:17:27 -------------------- ZF developer
|
|
|
12.11.2009, 16:36:32
Post
#6
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%) |
moze to dlatego ze 1.2 jest ciagle beta?
uzyj wersji stable tak na margineie - skoro inkudujesz te klase za pomoca sciezki generated/BaseArtist.php to czy nie powinna sie ona nazywac Generated_BaseArtist aby autoloader mogl ja poprawnie zlokalizowac? -------------------- |
|
|
12.11.2009, 18:19:57
Post
#7
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 6 Dołączył: 22.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Właśnie chodzi o to że chcę przejść z wersji 1.1 na 1.2 bo posiada kilka przydatnych ficzerów, a poza tym niedługo wyjdzie wersja stabilna a do tego czasu projekt na pewno jeszcze nie będzie gotowy. BaseArtist - tak się nazywa bo tak mi wygenerował Doctrine. Wersja 1.2 robiła tak samo. Jak napisałem jest sposób aby zadziałało (dodając do pierwszego wg alfabetu modelu require_once), więc źle wczytuje tylko w jakimś przypadku i nie wiem czy z mojej, czy może jednak z winy ORMa...
-------------------- ZF developer
|
|
|
7.12.2009, 12:14:09
Post
#8
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) |
Witam!
1.2 jest już wersją stabilną, mam dokładnie ten sam problem. Czy komuś udało się go rozwiązać? |
|
|
7.12.2009, 13:01:28
Post
#9
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
W Doctrine 1.2 został zmieniony mechanizm ładowania modeli. Wszystko jest bardzo elegancko opisane tutaj:
http://www.doctrine-project.org/upgrade/1_2 pod linkiem "PEAR Style Model Loading and Generation". Jak widać, należy zarejestrować specjalny autoloader i ustawić w nim ścieżkę do modeli. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
7.12.2009, 13:21:20
Post
#10
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) |
metoda generateModelsFromDb generuje modele po staremu, czyli modele Base* w podkatalogu generated. Po przerzuceniu ich do głównego folderu modeli działa jak należy.
Czy zatem setModelsDirectory należy ustawić dwukrotnie? Raz dla głównego folderu modeli i drugi raz dla podkatalogu generated? (wówczas działa poprawnie, ale po mojemu są tu luki w dokumentacji...) |
|
|
Wersja Lo-Fi | Aktualny czas: 6.05.2024 - 10:57 |