Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie obiektu, deklarowanie zmiennych i magiczna metoda __set, __set, public, private, protected
hespis
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.08.2005
Skąd: Warszawa

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


Witam

Podczas testów i zabawy z PDO trafiłem na bardzo ciekawą i użyteczną funkcję:

PDO::FETCH_CLASS ( np. $stmt -> setFetchMode(PDO::FETCH_CLASS, 'myDAO'); )

która potrafi przerzucać wynik zapytania – każdy wiersz, do wybranej klasy ( w tym przypadku 'myDAO').

Pytanie: czy istnieje możliwość, jakaś "magiczna metoda", która zadeklaruję zmienną w klasie z wybranym zakresem widoczności (public, protected, private) ? Coś jak __set tylko z możliwością wybrania jaka ma być to zmienna ?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
UDAT
post
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Nie rozumiem problemu.

Chcesz mieć określony zasięg zmiennych to dajesz private/protected/public przed każdą właściwością/polem.
Potem deklarujesz __set, które zapisuje konkretne kolumny do konkretnych pól i to wszystko.

Jeśli chcesz stworzyć jedną klasę która zbiera dane ze wszystkich zapytań to odpuść sobie, będzie to mniej wydajne od użycia tablic.
Go to the top of the page
+Quote Post
hespis
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.08.2005
Skąd: Warszawa

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


Szukam sposobu na stworzenie obiektu na podstawie wzoru - mapy, bez konieczności deklaracji zmiennych. PDO wypełniałoby określona klasę zmiennymi a abstrakt po jakim dziedziczyłaby dana klasa załatwiałby sprawę bardziej zaawansowanych metod obiektu -> save(), update(), itd.

Jak rozumiem, wydajność takiego rozwiązania nie jest zadowalająca ? Gdzie jest wąskie gardło ?

I tak na marginesie.

Dla klasy która nie ma metody __set zadeklarowanej, ale za to ma zadeklarowane pola jak również ich zasięg widoczności PDO wypełni je! Wynik zapytania który nie znajdzie odzwierciedlenia w zadeklarowanych polach zostanie dodany do obiektu jako zmienna publiczna. Tak więc chodzi o to, aby pola były tworzone z automatu, ale z uwzględnieniem zasięgu.
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: 21.08.2025 - 02:27