Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przekazywanie obiektu PDO
Apo
post 24.06.2006, 13:50:22
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Witam
Chciałem sie zapytac jak rozwiązaliście przykazywanie obiektu PDO między róznymi klasami :?:
Bo nie wiem jak rozwiązać ten problem :/ Myślałem że zrobie takie coś:
W index.php stworze obiekt $pdo i potem jeśli będzie potrzebny np w klasie 'news' to przekaże go przez konstruktor:

  1. <?php
  2. class news {
  3. private $pdo;
  4.  
  5.  public function __construct($pdo)
  6.  {
  7.  $this->pdo = $pdo
  8.  }
  9. // potem w kodzie $pdo->query ... itp
  10. }
  11. ?>


ALe nie wiem czy to jest najlepszy pomysł ...

Ten post edytował Apo 24.06.2006, 13:51:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Fipaj
post 24.06.2006, 14:04:01
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


Singleton

(czy PDO nie ma wbudowanego Singletonu?)


--------------------
Go to the top of the page
+Quote Post
bela
post 24.06.2006, 14:22:20
Post #3


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Chyba nie ma wbudowanego, ale można dopisać winksmiley.jpg Wystarczy wydziedziczyć (chyba już nie ma problemu z final).


--------------------
Go to the top of the page
+Quote Post
Apo
post 24.06.2006, 15:50:26
Post #4





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Ok dorobiłem ten Singleton jak pisaliście smile.gif

  1. <?php
  2.  
  3. class myPDO extends PDO {
  4.  
  5. private static $instance = null;
  6.  
  7. public static function getPDO()
  8. {
  9. if(is_null(self::$instance))
  10. return self::$instance = new PDO('mysql::host=localhost;port=3306;dbname=mysite', 'root', '');
  11. else
  12. return self::$instance;
  13.  
  14. }
  15. }
  16.  
  17. try
  18. {
  19. $pdo = myPDO::getPDO();
  20. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // aby tego nie powtarzac
  21. } catch(PDOException $e)
  22. {
  23. echo $e->getMessage();
  24. }
  25. ?>


Ale teraz mam pytanie jak moge ustawiać automatycznie przy tworzeniu obiektu metode setAttribute aby jej nie powatarzać w danym obiekcie ?

Pozdro
Go to the top of the page
+Quote Post
dr_bonzo
post 24.06.2006, 15:57:49
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No chyba zartujesz?

self::$instance->setAttribute()


--------------------
Nie lubię jednorożców.
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: 3.07.2025 - 20:14