Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> definicje w klasach, define()?
bonio89
post 23.04.2013, 10:54:18
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 30.09.2009

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


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++.
Go to the top of the page
+Quote Post
!*!
post 23.04.2013, 11:00:04
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A const się do tego nie nadaje, bo tylko tak deklarujesz stałe w klasie.
  1. const FOO = 'bar';


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Crozin
post 23.04.2013, 11:01:04
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Po co w ogóle chciałbyś tworzyć takiego potworka?
Go to the top of the page
+Quote Post
bonio89
post 23.04.2013, 11:12:56
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 30.09.2009

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


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

Ten post edytował bonio89 23.04.2013, 11:14:10
Go to the top of the page
+Quote Post
Szymciosek
post 23.04.2013, 11:15:19
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Może bazuj na signletonie?
Go to the top of the page
+Quote Post
Crozin
post 23.04.2013, 11:17:58
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
b4x
post 23.04.2013, 11:18:30
Post #7





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


  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. }


Ten post edytował b4x 23.04.2013, 11:20:25


--------------------
Go to the top of the page
+Quote Post
bonio89
post 23.04.2013, 11:44:50
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 30.09.2009

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


b4x, możesz rozwinąć swoją myśl? O co chodzi z tym $_instance?
Go to the top of the page
+Quote Post
Szymciosek
post 23.04.2013, 11:45:33
Post #9





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Google -> Singleton php
Go to the top of the page
+Quote Post
b4x
post 23.04.2013, 12:01:05
Post #10





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


@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.


--------------------
Go to the top of the page
+Quote Post
bonio89
post 23.04.2013, 12:49:13
Post #11





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 30.09.2009

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


b4x, dzięki tego szukałem biggrin.gif
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 Wersja Lo-Fi Aktualny czas: 27.04.2024 - 22:36