![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Nie jestem tak mocno "obkuty" w obiektowym programowaniu, a widzę (wg mnie wykonalny) prosty sposób na możliwość ustawienia prefix'u table w ZF. Kod przykładowego modelu wygląda tak:
Wiem, że abstract pozwala rozbudować klasę (ja to tak rozumiem). Tak więc, czy nie można zrobić czegoś takiego np. w Bootstrap.php:
Ten post edytował misiek08 18.06.2010, 21:52:44 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
fajnie byloby ten prefix z configa pobierac
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
W pliku Bootstrap definiuję TABLE_PREFIX. Chodzi mi czy taka konstrukcja działa. Nie mam niestety jak jej przetestować, bo dopiero jutro będę miał dane FTP do strony. Nie używałem wcześniej abstract'a.
EDIT: Z tego co szukałem w internecie widzę, że abstract służy do czegoś innego. Moim problemem jest chęć nadpisania metody _setupTableName z klasy Zend_DB_Table tak, aby każdy obiekt tej klasy miał automatycznie dodawany prefix do nazwy. Ten post edytował misiek08 19.06.2010, 12:00:13 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
abstract uzywasz wtedy gdy chcesz "zamarkowac", ze dana klasa ma miec jakas konkretna metode, ale nie mozesz jeszcze napisac jej kodu
np.
kazda klasa ktora ma chociaz jedna metode abstrakcyjna, musi byc abstrakcyjna - wynika tez z tego ze jesli dziedziczysz po klasie abstrakcyjnej i nie pokryjesz jej abstrakcynych metod, to wlasnie tworzysz nastepna klase abstrakcyjna ![]() oczywiscie nie mozesz tworzyc obiektow klasy abstrakcyjnej ![]() ![]() klasy abstrakcyjne maja sens wtedy gdy tworzysz klasy dziedziczace po nich, wtedy: 1. narzucasz ze pewne metody musza miec implementacje, jesli ktos chce tworzyc normalne obiekty 2. dzieki temu ze interpreter wie, ze AbstractClass ma jakas metode, mozesz uzywajac polimorfozmu traktowac klasy dziedziczace po AbstractClass, jak instancja obiektu AbstractClass i wtedy odwolywac sie normalnie do jej metod abstrakcyjnych http://php.net/manual/en/language.oop5.abstract.php Ten post edytował yevaud 19.06.2010, 12:28:06 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
A na mój problem jakie lekarstwo? Po prostu chciałbym zmodyfikować istniejąca klasę, ale bez ingerowania w jej oryginalny kod.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Twoja technika ma sens jesli zrobisz sobie klase ktora dziedziczy po Zend_DB_Table i nazywa sie np. "Misiek_Db_Table", dodaje tam co trzeba, a Ty dziedziczysz swoimi tabelami po Misiek_Db_Table
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Czyli:
Oczywiście dodam wcześniej w mojej funkcji kod starego setupTableName. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
dorzuc uruchomienie rodzica w setupTableName
Ten post edytował yevaud 19.06.2010, 13:24:03 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Czyli wtedy już nie muszę przpisywać kodu ze starej setupTableName? Chodzi o kod który rozbija ewentualnie nazwe bazy, i który na podstawie nazwy klasy tworzy nazwę tabeli jeśli nie została podana?
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
nie musisz
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Dziękuję za tak kompleksową pomoc w sobotę. Dałem pomógł oczywiście. Można (chyba) zamknąć.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 02:00 |