Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][OOP]Pierwsza własna klasa, któtkie pytanie
Forum PHP.pl > Forum > PHP > Object-oriented programming
windman
Witam,

w PHP piszę od ok. trzech lat, jak do tej pory wyłącznie strukturalnie.
Na codzień używam oczywiście szeregu klas, jednakże sam żadnej jeszcze nie napisałem.
Zdaję sobie sprawę, że OOP to dzisiaj standard i trzeba się z tym zmierzyć.
Teorię znalazlem w książkach... wiadomo jednak jak się ma teroia do praktyki.

Pierwszą klasą jaką postanowiłem napisać jest baza danych oparta na plikach.
Pojawiła się od razu pierwsza wątpliwość:

pierwszym zadaniem klasy musiałoby być sprawdzenie, czy plik do zapisu danych istnieje, czy ma odpowiednie prawa itd.

Wydaje mi się, że najlepszym miejscem do tego będzie konstruktor.... czy tak?
Jeżeli tak to w jaki sposób wyświetlić błąd, gdy powiedzmy plik nie istnieje i wstrzymać dalsze instrukcje dla obsługi bazy?

W przypadku gdybym sprawdzał plik za pomocą innej funkcji nie byłoby problemu:
  1. <?php
  2. $ob = new TxtDB('plik.txt');
  3. $plikIstnieje = $ob->sprawdzPlik();
  4.  
  5. if($plikIstnieje == true){
  6.  INSTRUKCJE DLA BAZY
  7. }
  8. ?>

Jak będzie to wyglądało w przypadku gdy konstruktor będzie sprawdzał plik?

jeszcze jedno... w jaki sposób w OOP wyświetlać błędy? czy robi się to na zasadzie:
  1. <?php
  2. public function test(){
  3. if(!$this->zmienna) echo "Treść komunikatu błedu";
  4. }
  5. ?>


Za pomoc z góry dziękuję!

Pozwoliłem sobie edytować. Na czerwono masz potencjalne obiekty, na niebiesko działania na nich (działania to często również obiekty) (cysiaczek)
bim2
klasa sama powinna sprawdzić czy plik istnieje w konstruktorze i jeśli nie wyrzycic wyjątek Exception" title="Zobacz w manualu PHP" target="_manual smile.gif

Zrób, żeby działało tak
  1. <?php
  2. $oDb = new DbTxt('plik.txt');
  3.  
  4. echo $oDb->getRow(3); //zwraca linie 3
  5. $oDb->setRow(3, 'tralalala'); //zmieni linie 3
  6. $oDb->clearFile();
  7. ?>


Tyle. Jak pliku nie ma jak mówiłem niech wywali wyjątek.
windman
Cytat(bim2 @ 2.03.2009, 20:41:49 ) *
klasa sama powinna sprawdzić czy plik istnieje w konstruktorze i jeśli nie wyrzycic wyjątek Exception" title="Zobacz w manualu PHP" target="_manual smile.gif

Tak jak myślałem, konstruktor jest odpowiednim miejscem...
Dzięki i pozdrawiam.
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.