Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]klasy i dziedziczenie - zachowanie porządku w kodzie
Forum PHP.pl > Forum > Przedszkole
Larges
Witam,
rozbiłem trochę kodu na kilka klas i metod...
Doszedłem do klasy której jedna metoda powinna pobierać kod z kilku źródeł.

Z tego co się orientuję w PHP nie ma dziedziczenia od dwóch i więcej klas naraz.

Co radzicie zrobić?
"Rozrysuję" przykładową klasę

  1. class a {
  2. function a_a()
  3. {
  4. switch($_GET['jakas_zmienna)
  5. {
  6. case 'a' :
  7. include('...');
  8. break;
  9. }
  10. case 'b' :
  11. include('...');
  12. break;
  13. }
  14. }
  15. }


Czy można w metodzie klasy importować inną klasę lub funkcję? - obiektowości dopiero się uczę party.gif
Czy rozbić kod importowany za pomocą include na kilka plików? - to byłby powrót do strukturalnej koncepcji... winksmiley.jpg
Nie bardzo wiem jak się za to logicznie zabrać a chciałbym zachować w kodzie porządek na przyszłość i ku potomnym.

Później naturalnie z metody a do innych metod w klasie będę chciał przekazywać dane za pomocą atrybutów klasy.
Dzięx za podpowiedzi.
zegarek84
tak na szybko jak patrzę to dobrym rozwiązaniem dla Ciebie jest implementacja wzorca projektowego strategia przy zastosowaniu tych samych metod choć inaczej załatwiających sprawę w zależności od otoczenia jakie się oprogramuje...

poczytaj o nim tutaj (są przykłady kodu - niżej masz też odnośniki do innych wzorców projektowych - może coś przyda Ci się):
Wzorce projektowe - strategia
Ociu
Nie bardzo zrozumiałem...
Można tak:

  1. <?php
  2. class foo {
  3. public function bar($object) {
  4. $object->metoda();
  5. }
  6. }
  7. // gdzie:
  8. $foo = new foo();
  9. $foo->bar($obiekt_jakiejs_klasy);
  10. ?>

tak:
  1. <?php
  2. class foo extends obiekt{
  3. public function bar() {
  4. $this->metoda();
  5. }
  6. }
  7. ?>


oraz:
  1. <?php
  2. class foo{
  3. public function bar() {
  4. $obiekt = new obiekt();
  5. $obiekt->metoda();
  6. }
  7. }
  8. ?>

Jeśli chodzi o includowanie jakiś części skryptu, to zapomnij. Po to są obiekty, aby cały kod był obiektowo, a nie dzielić go na obiektowo-strukturalny.

http://pl.php.net/manual/pl/language.oop5.basic.php są bardzo fajne przykłady.
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.