Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nazwa klasy po której dziedziczę.
sparr0w
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.09.2011

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


Jako, że jest to mój pierwszy post, to witam wszystkich serdecznie.

Mam do was kochani pytanie. Otóż w pewnym celu, potrzebuje możliwości dziedziczenia po różnych klasach w zależności od sytuacji. Próbowałem już czarować ze zmiennymi, stałymi, etc., interpreter nie daje niestety za wygraną. W skrócie, chodzi mi o rozwiązanie takiej (błędnej z punktu widzenia interpretera) sytuacji:

  1. $dziedzicz_po_mnie = 'MojaKlasaRaz';
  2. class MojaKlasaDwa extends $dziedzicz_po_mnie {}


Odpowiada mi zarówno rozwiązanie ze zmienną, jak i stałą, nie ma to dla mnie znaczenia. Po prostu na podstawie wpisu w configu chciałbym dziedziczyć po różnych klasach.
Dzięki serdeczne i pozdrawiam.

Ten post edytował sparr0w 10.09.2011, 05:14:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kedan
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 20.07.2007

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


Słusznym rozwiązaniem byłoby też PDO.

A nawiązują do tematu. Ogólnie rzecz biorąc, to co chciałeś z początku osiągnąć dziedziczeniem, powinno się zrobić przy pomocy agregacji:
  1. class DB implements iDB {
  2.  
  3. private $__driver;
  4.  
  5. public function __construct($driver_) {
  6. switch($driver_) {
  7. case 'MySQL':
  8. $this->__driver = new DB_MySQL();
  9. break;
  10. case 'PostgreSQL':
  11. $this->__driver = new DB_PSQL();
  12. break;
  13. default:
  14. die('Unknown database driver');
  15. break;
  16. }
  17. }
  18.  
  19. public function some_action($args_) {
  20. return $this->__driver->some_action($args_);
  21. }
  22.  
  23. }
  24.  
  25. class DB_MySQL implements iDB {
  26. //...
  27. }
  28.  
  29. class DB_PSQL implements iDB {
  30. //...
  31. }

lub, jak pisał Fifi209, za pomocą wzorców konstrukcyjnych.

Ten post edytował Kedan 30.09.2011, 10:05:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 22:02