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
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.
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.
Krzysztof
N.
Project Manager.
Aplikacje www. PHP,
Symfony, Zend.
Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)
Mateusz Wądołkowski:W np. taki:
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ć?
/**
* 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
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ę.
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ę.
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.
Krzysztof
N.
Project Manager.
Aplikacje www. PHP,
Symfony, Zend.
Temat: [s1.4] Dodanie globalnej klasy z konfiguracją (singleton)
Mateusz Wądołkowski:W dowolnym, ponieważ przy każdym kolejnym, tj. niepierwszym, wywołaniu metody getInstance() zostanie zwrócona ta sama instancja klasy.
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.
