Cytat(szypi1989 @ 27.01.2011, 15:28:23 )

Witam.Gdy chce dla przykłady utworzyć obiekt klasy Form_Tab która dziedziczy po Zend_Form.Która znajduje się w folderze model to tworząc obiekt Zend szuka mi tej klasy jako Form\Tab.php.I nie mogę ładować tych klas które mają znak "_".Jak sobie z tym poradzić? proszę o pomoc
Bo ta klasa powinna znajdować się w folderze
application/forms.
Tak jak wcześniej powiedziane, ZF zamienia nazwę klasy na jej lokalizację w strukturze plików.
Z tym, że domyślnie posiada zdefiniowanie kilka ścieżek do tzw. 'resource' - patrz tutaj =>
http://framework.zend.com/manual/en/zend.l...r-resource.html. Co to znaczy?
Znaczy to, że ZF będzie szukał klas na takiej zasadzie:
$form = new Form_Tab() // => application/forms/Tab.php
$model = new Model_Customer() // => application/models/Customer.php
$plugin = new Service_FooBar() // => application/services/FooBar.php
Jednak należy zwrócić uwagę, że podczas ładowania klas Zend szuka automatycznie klas z dodanym prefixem aplikacji - domyślnie brzmi on "Application". Zmienia się to w pliku .ini:
Kod
appnamespace = "My"
Jeśli będziesz miał taki wpis jak wyżej, musisz nazywać klasy razem z tym prefixem, czyli My_Form_tab, My_Model_Customer. Aby ZF znajdował klasy bez prefixu, takie jak Twoja Zend_Tab musisz ustawić appnamespace na pustą wartość:
Kod
appnamespace = ""
Trochę więcej informacji na temat domyślnego autoloadera znajdziesz w tutorialu Roba Allena (dział Model):
http://akrabat.com/zend-framework-tutorial/