Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] Połączenie z baza.
Eagle
post
Post #1





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


Witam

Chciałem się dowiedzieć w którym miejscu łączycie się z bazą.
Ja robię to standardowo(?) w index i zapisuje połączenie do rejestru.

Gdy mam cały widok w cache (smarty) to połączenie jest mi niepotrzebne.
Zastanawiam się czy przerobić skrypt i nawiązywać to połączenie w każdej akcji (jeżeli nie ma cache), w ten sposób zaoszczędzę milisekundy winksmiley.jpg. Jednak z tego powodu rozrośnie się też kod, bo wszędzie dodam tą linijkę, dwie.

Pozdrawiam
Go to the top of the page
+Quote Post
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Gdy zaczynałem się uczyć ZF, znalazłem fajny artykuł na temat umiejscowienia różnych dziwnych rzeczy w ZF. Autor przedstawił ciekawą koncepcję, polegającą na stworzeniu plugina inicjalizującego. W tym pluginie wykonują sie wszystkie operacje, które muszą się wykonać podczas ładowania strony, między innymi łączenie z bazą danych. Niestety nie mam linka do tego artykułu.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Eagle
post
Post #3





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


Ale gdy cała strona jest w cache to przecież połączenie nie jest mi potrzebne.
A z tego co mi wiadomo co pluginy są ładowane i w ten sposób też zawsze zostanie nawiązane połączenie z bazą.

Ten post edytował Eagle 29.01.2009, 17:16:14
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




W moim przypadku zdecydowaną większość stanowią aplikacje, które muszą mieć cały czas połączenie z bazą.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
urfin
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 17.10.2008

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


Ja mam plugina zarejestrowanego w bootstrapie:

  1. <?php
  2. $frontController->registerPlugin(new Initializer('production'));
  3. ?>


Ale w całej aplikacji potrzebuję połączenia z bazą.

Jeżeli potrzebujesz połączenie tylko w określonym kontrolerze, to umieść w metodzie init().
Go to the top of the page
+Quote Post
Eagle
post
Post #6





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


Cała aplikacja potrzebuje dostępu do bazy, więc chyba zostawię tak jak mam teraz. Więcej zabawy chyba zajmie mi obmyślanie optymalizacji o te 0,5 milisekundy.
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ZF ma tzw: lazy connections, ktore powoduje ze do bazy łączysz sie wtedy, kiedy poraz pierwszy tego potrzebujesz
http://framework.zend.com/manual/en/zend.d...g.getconnection
ale nie tescilem tego wiec nie wiem jak dziala w praktyce


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Diabl0
post
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 25.03.2006

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


Cytat(nospor @ 29.01.2009, 22:45:46 ) *
ale nie tescilem tego wiec nie wiem jak dziala w praktyce


Działa poprawnie. Prawdziwe połączenie jest nawiązywane dopiero przy pierwszym zapytaniu.

Jedyny "problem" to MySQL i SET NAMES, ale na Trackerze znajduje się patch który świetnie rozwiązuje ten problem.


--------------------
Blog
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:42