Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Połączenie z baza.
Forum PHP.pl > Forum > PHP > Frameworki
Eagle
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
batman
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.
Eagle
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ą.
batman
W moim przypadku zdecydowaną większość stanowią aplikacje, które muszą mieć cały czas połączenie z bazą.
urfin
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().
Eagle
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.
nospor
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
Diabl0
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.