class.upload.php
<?php class Upload { var $folder; function __construct($folder) { $this->folder = $folder; $this->upload(); } public function check() { if($_FILES['plik']['error']>0) { switch($_FILES['plik']['error']) { case 1: echo "rozmiar pliku przekroczył wartość xMB.<br /><a href='java script:history.back(1)'>Wróć</a>"; break; case 2: echo "rozmiar pliku przekroczył wartość xMB.<br /><a href='java script:history.back(1)'>Wróć</a>"; break; case 4: echo "nie wysłano żadnego pliku.<br /><a href='java script:history.back(1)'>Wróć</a>"; break; case 6: echo "nie można wysłać pliku: nie wskazano katalogu tymczasowego.<br /><a href='java script:history.back(1)'>Wróć</a>"; break; case 7: echo "nie zapisano pliku na dysku.<br /><a href='java script:history.back(1)'>Wróć</a>"; break; } } else { return true; } } } } public function upload() { if($this->check()) { throw new Exception('Dodano plik pomyślnie'); } else { throw new Exception('Nie dodano pliku!'); } } else { throw new Exception('Taki plik już istnieje!'); } } } else { throw new Exception('Niepoprawny typ!'); } } } ?>
index.php
<?php include('class.upload.php'); try { $upload = new Upload('files'); } catch (Exception $e) { } ?>
Mam co do tego pytania :
1) Wiem że w stylu OOP są wyjątki. Czy to, jak ja je zastosowałem to odpowiednia metoda? Czy jest ich za dużo ? Bo mi nie pasują za bardzo ...
2) Czy wyjątki powinno się dawać do udanych operacji ?
3) Czy w konstruktorze wykonywać metodę 'upload' czy odwołać się do niej poza konstruktorem, już w pliku index?
4) Jeśli mam operacje na bazie danych bądź plikach tekstowych to czy tworzyć destruktor do ich zamykania ?
To takie ogólne pytania i byłbym bardzo wdzięczny gdyby ktoś mi to 'sprawdził', wytknął błędy i polecił dobrą literaturę

Dziękuję i pozdrawiam.