Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: definicje w klasach
Forum PHP.pl > Forum > PHP
bonio89
Witam,
Chciałbym uzyskać zdefiniowane słowo które procesor tekstu będzie zamieniał za nazwę zmiennej przed etapem interpretacji php. Generalnie chodzi mi o to aby miał __MYSQL__ która raz przyjmie wartość $this->mysql a raz $nazwa_klasy->mysql.
Chciałbym zmieniać znaczenie __MYSQL__ w zależności od tego czy będzie włączona jakaś klasa do skryptu. Coś jak #define z C++.
!*!
A const się do tego nie nadaje, bo tylko tak deklarujesz stałe w klasie.
  1. const FOO = 'bar';
Crozin
Po co w ogóle chciałbyś tworzyć takiego potworka?
bonio89
bo mam klasę do obsługi sql i klasę do obsługi użytkownika. Jak dochodzi inna klasa korzystająca z klasy Mysql to niepotrzebnie robią się 2 połączenia więc chciałbym aby np. klasa News sprawdziła czy istnieje już obiekt klasy User i ewentualnie odwoływała się do obiektu klasy Mysql w obiekcie User.

W sumie jak to napisałem to bez sensu facepalmxd.gif bo obiekt mysql w klasie User jest prywatny więc jak to rozwiązaćquestionmark.gif
Szymciosek
Może bazuj na signletonie?
Crozin
1. Tworzysz sobie obiekt (np. PDO), odpowiedzialny za komunikację z bazą danych.
2. Do każdego obiektu, który wymaga komunikacji z bazą danych przekazujesz ów obiekt jako argument konstruktora.
b4x
  1. <?php
  2. class Baza
  3. {
  4. protected static $_instance;
  5.  
  6. public static function instance($name = 'default')
  7. {
  8. if(! isset(Baza::$_instance[$name]))
  9. Baza::$_instance[$name] = new Baza;
  10.  
  11. return Baza::$_instance[$name];
  12. }
  13.  
  14. public function __construct()
  15. {
  16. // połaczenie itd..
  17. }
  18. }
  19.  
  20. class User
  21. {
  22. public static function getUid()
  23. {
  24. return Baza::instance()->query('SELECT * FROM users')
  25. ->getrows();
  26. }
  27. }
  28.  
  29. class News
  30. {
  31. public static function getNews($id)
  32. {
  33. return Baza::instance()->query('SELECT * FROM news WHERE id = "'.$id.'"')
  34. ->getrows();
  35. }
  36. }
bonio89
b4x, możesz rozwinąć swoją myśl? O co chodzi z tym $_instance?
Szymciosek
Google -> Singleton php
b4x
@bonio89 -> http://phpedia.pl/wiki/Singleton

Cytat
Wzorca singleton możemy używać wtedy, gdy potrzebujemny tylko jednej instancji danej klasy ( np w klasie do obsługi bazy danych, gdzie przy każdym stworzeniu obiektu, tworzone jest nowe połączenie), i/lub gdy potrzebujemy globalnego dostępu do instancji klasy.
bonio89
b4x, dzięki tego szukałem biggrin.gif
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.