Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Doctrine][ZF] Błąd podczas ładowania modelu
snapshot
post 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
Go to the top of the page
+Quote Post
murwazy
post 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
Go to the top of the page
+Quote Post
snapshot
post 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
Go to the top of the page
+Quote Post
murwazy
post 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...
Go to the top of the page
+Quote Post
snapshot
post 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
Go to the top of the page
+Quote Post
seth-kk
post 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?


--------------------
Go to the top of the page
+Quote Post
snapshot
post 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
Go to the top of the page
+Quote Post
drPayton
post 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ć?
Go to the top of the page
+Quote Post
Zyx
post 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
Go to the top of the page
+Quote Post
drPayton
post 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...)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.05.2024 - 10:57