Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF]newsy z bazy
elmozaur
post
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 ?
Go to the top of the page
+Quote Post
tr!ckle
post
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
Go to the top of the page
+Quote Post
elmozaur
post
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
Go to the top of the page
+Quote Post
tr!ckle
post
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
Go to the top of the page
+Quote Post
elmozaur
post
Post #5





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


dziekuje za wyczerpujaca odpowiedz
Go to the top of the page
+Quote Post
KrzysiekWildfire
post
Post #6





Grupa: Zarejestrowani
Postów: 93
Pomógł: 11
Dołączył: 27.10.2010
Skąd: Kutno/Poznań

Ostrzeżenie: (0%)
-----


Tu masz przykładowy model i mapper.

http://forum.php.pl/index.php?s=&showt...st&p=855395
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 Aktualny czas: 22.08.2025 - 04:52