Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Początki OOP
Mefiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Witam. Rozpocząłem żmudne zagłębianie się w tajniki programowania zorientowanego obiektowo, przeczytałem kilka artykułów i pomyślałem że najlepiej jest sprawdzić swoją wiedzę w praktyce. Tak oto powstała klasa do uploadu plików. Przyznam się, że pobrałem sobie podobną klasę z phpclasses.org, aby zobaczyć mniej więcej jak to wygląda. Chciałbym Was zapytać czy ma to coś w ogóle wspólnego ze stylem OOP ?

class.upload.php
  1. <?php
  2. class Upload {
  3. var $folder;
  4. var $types = array('application/msword', 'application/octet-stream', 'image/jpeg');
  5.  
  6. function __construct($folder) {
  7. $this->folder = $folder;
  8. $this->upload();
  9. }
  10.  
  11. public function check() {
  12. if (isset($_POST['wyslij'])) {
  13. if($_FILES['plik']['error']>0) {
  14. echo "Wystąpił problem: ";
  15. switch($_FILES['plik']['error']) {
  16. case 1: echo "rozmiar pliku przekroczył wartość xMB.<br /><a href='java script:history.back(1)'>Wróć</a>"; break;
  17. case 2: echo "rozmiar pliku przekroczył wartość xMB.<br /><a href='java script:history.back(1)'>Wróć</a>"; break;
  18. case 3: echo "plik wysłany częściowo.<br /><a href='java script:history.back(1)'>Wróć</a>"; break;
  19. case 4: echo "nie wysłano żadnego pliku.<br /><a href='java script:history.back(1)'>Wróć</a>"; break;
  20. case 6: echo "nie można wysłać pliku: nie wskazano katalogu tymczasowego.<br /><a href='java script:history.back(1)'>Wróć</a>"; break;
  21. case 7: echo "nie zapisano pliku na dysku.<br /><a href='java script:history.back(1)'>Wróć</a>"; break;
  22. }
  23. }
  24. else {
  25. if (in_array($_FILES['plik']['type'], $this->types)) {
  26. return true;
  27. }
  28. }
  29. }
  30. }
  31.  
  32. public function upload() {
  33. if($this->check()) {
  34. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  35. if(!file_exists($this->folder.'/'.$_FILES['plik']['name'])) {
  36. if(move_uploaded_file($_FILES['plik']['tmp_name'], $this->folder.'/'.$_FILES['plik']['name'])) {
  37. throw new Exception('Dodano plik pomyślnie');
  38. }
  39. else {
  40. throw new Exception('Nie dodano pliku!');
  41. }
  42. }
  43. else {
  44. throw new Exception('Taki plik już istnieje!');
  45. }
  46. }
  47. }
  48. else {
  49. throw new Exception('Niepoprawny typ!');
  50. }
  51. }
  52. }
  53. ?>



index.php
  1. <?php
  2.  
  3. include('class.upload.php');
  4.  
  5. try {
  6. $upload = new Upload('files');
  7. }
  8. catch (Exception $e) {
  9. echo $e->getMessage();
  10. }
  11.  
  12. ?>



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ę (IMG:style_emoticons/default/smile.gif)

Dziękuję i pozdrawiam.

Ten post edytował Mefiuu 3.08.2011, 20:46:10
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: 24.12.2025 - 16:40