![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Witam
Czytam sobie właśnie quickstart'a o ZF i nie rozumiem jednej rzeczy. Chodzi o index.php i bootstrap.php Aby lepiej wytłumaczyć o co chodzi wkleję kod index.php i w miejscu includowania boostrapa, od razu też wkleję jego kod. Wyciąłem komentarze co by krócej było.
W lini 18 tworzymy pierwszy raz Front Controller, robimy na nim dwa ustawienia, katalogu i zmiennej. Następnie w linii 24 tworzymy obiekt View, też robimy jakieś ustawienia. Tworzone są jeszcze obiekty konfiguracji i uchwyt do bazy danych. [pisząc ten tekst powoli zaczynam chyba sam rozumieć, ale kontynuuję dalej co by dostać odpowiedź potwierdzającą czy dobrze rozumiem no i może dla potomnych się przyda] I teraz obiekty konfiguracji i uchwyt do bazy są dodawane do Rejestru, ale FrontControler oraz View do rejestru dodane nie są, a mimo wszystko też są niszczone :/ Trochę byłem zmieszany tym, ale zacząłem szperać po API no i wymysliłem, że powód dla którego można skasować te obiekty jest taki, że zostały one utworzone na podstawie klas statycznych (Front na pewno). I teraz czy dobrze sobie to tlumacze, ze z chwila zapoczątkowania przejścia przez aplikację (wchodzimy do index, itd., uruchmiamy parser php i adresowanie pamięci na podstawie kodu) odwołania do klas statycznych przy pomocy "::", bądź za pomocą singeltonowego obiektu takiej klasy i wykonywanie metod, ustawianie właściwości powodują zapisanie tych danych na poziomie klasy, która to ma przydzieloną swoją fizyczną pamięć? No bo z obiektami normalnych klas, wiadomo, każdy obiekt to inna komórka pamięci. Dobrze to mniej więcej rozumuję ![]() ![]() -------------------- "Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! | Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Jak masz obiekty to pamiec jest dzielona na 2 obszary (sterte i stos).
Na stercie sa obiekty, a na stosie zmienne wskazujace na te obiekty. Kiedy ZADNA zmienna nie wskazuje na dany obiekt to jest on usuwany (w uproszczeniu!).
No i w tym przypadku FronController i View sa trzymane takze w singletonach (czyli zapisane w klasie == nie znikna dopoki ich sam stamtad nie usuniesz) - pamietasz jak on wyglada (self::$instance = $view/$frontCon..... itp ) - wiec unset nie zniszczy tych obiektow. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Dr_Bonzo za wyklarowanie sposobu jak to działa.
-------------------- "Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! | Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:37 |