![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzien dobry.
W kolejnym dniu nauki Zenda chcialbym pobrac dane z bazy i wyswietlic je jeden pod drugim. Wygooglalem kilka tutoriali i jest tam o zend_db_table. Pytanie: czy jest to w miare uniwersalne rozwiazanie ? (to znaczy czy bez problemu obsluzy 100 oraz 10000 wpisow w bazie) czy starac sie uzywac Zend_db_table zawsze ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 2 Dołączył: 12.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zend_Db_Table posiada wiele metod do tworzenia zapytań w bazie (jak select, insert, update etc.)
Tworząc klasę dziedziczącą po Zend_Db_Table_Abstract (możesz też bezpośrednio stworzyć obiekt Zend_Db_Table i na nim działać, ale przy dużych projektach będzie łatwo o bałagan i powielanie kodu), dla każdej tabeli w bazie osobną, tworzysz jakby mapę tej tabeli na obiekt (ot taki prosty ORM) Wracając do twojego pytania - jeśli chcesz wypisać n elementów, to spokojnie możesz z tego korzystać. Ta klasa tylko przygotowuje zapytanie i je wykonuje i nie ma tam żadnej wyższej filozofii. Ja na ten przykład w swoich projektach też korzystam z tej klasy i wg mnie jest to bardzo wygodne narzędzie, choć nie pozbawione wad (jak wszystko). Alternatywą dla Zend_Db_Table są Propel, Doctrine i inne orm-y. Możesz też w Zendzie pisać "z palca" zapytania - ale to mniej wygodne IMO, a Zend_Db_Table pozwala na wprowadzanie ręcznie kodu sql również (jeśli masz taką potrzebę) Ten post edytował tr!ckle 8.06.2011, 09:16:51 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
to zapytam jeszcze o jedno:
Mam taka strukture katalogow: application/modules/default/models/ application/modules/admin/models/ w module default stworzylem klase Newsy.php pytanie1: jak nazwac klase? Application_Modules_Default_Model_DbTable_Newsy ? pytanie2: jak utworzyc obiekt z takiej klasy w kontrolerze? $newsy = new Application_Modules_Default_Model_DbTable_Newsy(); cos mi nie wychodzi |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 2 Dołączył: 12.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
wystarczy Model_Newsy
definicja klasy musi mieć postać: Kod //sciezka do pliku APPLICATION_PATH/modules/default/models/Newsy.php class Model_Newsy extends Zend_Db_Table_Abstract { //dobrze sobie tutaj ustawić nazwę tabeli oraz nazwę primary key: protected $_name = 'nazwa_tabeli'; protected $_primary = 'primary_key'; //tutaj piszesz metody do działania na takiej tabeli np. getNewsById($newsID) - wiadomo;] } W tym przypadku zostanie wykorzystana klasa z modułu default. Gdybyś chciał modele z jakiegoś konkretnego modułu (nie default) to nazwa klasy: [Nazwa_modułu]_Model_Newsy Wywołujesz analogicznie: $newsyObj = new Model_Newsy(); Oczywiście przedrostek Model możesz sobie w bootstrapie zmienić wedle życzenia. Ten post edytował tr!ckle 8.06.2011, 11:38:01 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
dziekuje za wyczerpujaca odpowiedz
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 11 Dołączył: 27.10.2010 Skąd: Kutno/Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:52 |