Reklama
Szukaj zleceń na Getak.pl

Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Mateusz Wądołkowski PCDOCTOR,
właściciel

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Panowie i Panie,

Mam w bazie tablicę z podstawowymi danymi konfiguracyjnymi systemu. Dość często w różnych modułach muszę się do niej odnosić i wykonywanie zapytania o jeden jedyny rekord w tej tablicy jest niewydajne.
W jaki sposób utworzyć singleton i w którym miejscu tworzy się globalny obiekt do którego mógłbym w całej aplikacji się odnosić?
Nie udało mi się znaleźć takiego info w dokumentacji symfony.

Nie chcę też korzystać z plików konfiguracyjnych, bo te dane powinien móc
zmieniać user, więc baza danych jest znacznie lepsza.

Pozdrawiam
Mateusz
6.12.2011, 15:03

Paweł Skroban Programista/Develope
r, fachowo.co

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

a w pliku config.yml nie mozesz dodac parametrow ?
Do tego masz dostep z kazdego miejsca.
6.12.2011, 16:24

Mateusz Wądołkowski PCDOCTOR,
właściciel

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Tak jak mówię. User (czytaj np. starsza księgowa) musi mieć możliwość zmiany tych parametrów. Posługiwanie się formularzem jest wystarczająco trudne ;), a zmiana konfiguracji w jakimś pliku jest niemożliwa. I zresztą bardzo błędogenna.
6.12.2011, 17:23

Krzysztof N. Project Manager.
Aplikacje www. PHP,
Symfony, Zend.

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Mateusz Wądołkowski:
Mam w bazie tablicę z podstawowymi danymi konfiguracyjnymi systemu. Dość często w różnych modułach muszę się do niej odnosić i wykonywanie zapytania o jeden jedyny rekord w tej tablicy jest niewydajne.
W jaki sposób utworzyć singleton i w którym miejscu tworzy się globalny obiekt do którego mógłbym w całej aplikacji się odnosić?
W np. taki:
/**
* This is a test class
*/
class TestClass {

/**
* The instance of this class
* @return TestClass
*/
private static $instance = null;

/**
* Class constructor
* @return void
*/
private function __construct() {
}

/**
* Returns an instance of this class
* @return TestClass
*/
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}

return self::$instance;
}

}

Możesz plik TestClass.class.php utworzyć w katalogu /lib.Krzysztof N. edytował(a) ten post dnia 07.12.11 o godzinie 22:01
6.12.2011, 18:50

Mateusz Wądołkowski PCDOCTOR,
właściciel

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Ok, super.
Zaraz sobie usiądę i potestuję.
6.12.2011, 19:55

Paweł Skroban Programista/Develope
r, fachowo.co

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Nie do końca zrozumiałem, ale faktycznie dodanie klasy do lib załatwi sprawę.
6.12.2011, 21:37

Mateusz Wądołkowski PCDOCTOR,
właściciel

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Dzięki za pomoc i rozjaśnienie tematu.
Jeszcze tylko jedna kwestia. Żeby poustawiać wszystkie statyczne parametry muszę gdzieś tę klasę zainicjować, czyli odpalić getInstance().
W którym miejscu zrobić to najlepiej?
Oczywiście chciałbym to zrobić tylko raz na początku.
7.12.2011, 07:48

Krzysztof N. Project Manager.
Aplikacje www. PHP,
Symfony, Zend.

Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)

Mateusz Wądołkowski:
Jeszcze tylko jedna kwestia. Żeby poustawiać wszystkie statyczne parametry muszę gdzieś tę klasę zainicjować, czyli odpalić getInstance().
W którym miejscu zrobić to najlepiej?
Oczywiście chciałbym to zrobić tylko raz na początku.
W dowolnym, ponieważ przy każdym kolejnym, tj. niepierwszym, wywołaniu metody getInstance() zostanie zwrócona ta sama instancja klasy.
7.12.2011, 22:03



Wyślij zaproszenie do