Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozbicie klasy na kilka plikow
Forum PHP.pl > Forum > PHP > Object-oriented programming
likon1
Witam,

Tworze aktualnie klase do jednego z moich projektow. Ów klasa niestety przekroczyla juz 3k linii kodu i dos ciezko sie polapac w kolejnych jej metodach pomimo lcznych komentarzach.
Rozwiazaniem problemu byloby rozbicie jej na kilka plikow ktore dolaczalbym do glownego pliku.
W jaki sposob moge to zrobic tak by wszystkie includowane metody dzialaly poprawnie?

Crozin
3000 linii kodu?! Co to za kasa, że tyle tego tam masz. Nie powinieneś tego rozbić na inne, bardziej wyspecjalizowane obiekty? Ogólnie bloku klasy nie da się w PHP przerwać.
likon1
Hmm. Po prostu tak mi wygodnie miec w jednej klasie. Poza tym z tych 3000 mnostwo to jednak komentarz. Czy rozmiem takie dolaczene innych plikow nie istnieje?
Marcstee
Zetknąłem się z podobnym problemem kiedyś. Klasa której rozbijanie na mniejsze nie miało sensu i tak jak mówisz 1/4 kodu to komentarze (jak nie lepiej). Nie wiem czy rozbicie na pliki jest w ogóle możliwe ale osobiście polecam jednak zaopatrzyć się w dobre IDE. Na przykład NetBeans 6.8 i wykorzystanie zwijania wierszy ale przede wszystkim używanie nawigatora dzięki czemu w mgnieniu oka znajdujemy się tam gdzie chcemy i mamy pełny obraz tego co się znajduje w klasie. Do tego zaznaczamy sobie na kolumnie z numerami wierszy najważniejsze linie kodu mamy do nich dostęp z prawego paska. smile.gif
fleshgrinder
rozwiazanie z gatunku wtfcode, traktowac raczej jako zart winksmiley.jpg zakladajac, ze Twoja klasa nazywa sie Something:

  1. class SomethingPartOne {
  2. ...
  3. }
  4.  
  5. class SomethingPartTwo extends SomethingPartOne {
  6. ...
  7. }
  8.  
  9. class Something extends SomethingPartTwo {
  10. ...
  11. } // na jej podstawie tworzyc obiekt
wookieb
Co ta klasa robi?
batman
Na swoim blogu Maarten Balliauw zamieścił posta, który pasuje do Twojej sytuacji jak ulał - Extension methods for PHP. W skrócie - możesz rozszerzyć jedną klasę, metodami innej. Rozwiązanie to ma kilka minusów. Poczytaj komentarze pod postem, najdziesz w nich kilka wskazówek jak ulepszyć przykładowy kod.
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.