pisanie obiektowe

0

Witam jako że już niby coś tam pisałem obiektowego czy korzystałem z frameworkow itd. to nadal czuje że mam problem z przeszkatłceniem np jakiegos kodu na obiektowy.

Napisałem pewny konweter zdjęć z użyciem biblioteki Gumlet. I teraz w ramach ćwiczeń chciałbym sobie zmienić tek kod na obiektowy oop. Tylko jak to teraz zrobić może ktos mi napisze przykład? Zrobić to mam na zasadzie klasy abstrakcyjnej gdzie będa wszystkie te zmienne $filename, $tem_name ... itd z instrukcja warunkowa ? Czy jeszcze inaczej? Interfejs który implementuje mi do innej klasy zmienne i funkcje w ktorej bedzie funkcja wywołania z komunikatem ? Czy na zasadzie normalnej klasy ? Jak to mozna napisać

poniższy kod:


<?php

include 'ImageResize.php';
use \Gumlet\ImageResize;
 
 if (isset($_POST['submit'])) {
 	$filename = $_FILES['filetoupload']['name'];
 	$tem_name = $_FILES['filetoupload']['tmp_name'];
 	$filesize = $_FILES['filetoupload']['size'];
 	$uploaddir = 'uploads/';
 	$targetfile = $uploaddir.$filename;
 	$resizeimage = $uploaddir.'resize_'.$filename;


 		if ($filesize>0) {
 			if (move_uploaded_file($tem_name, $targetfile)){

 				$image = new ImageResize($targetfile);
				$image->scale(50);
				$image->save($resizeimage);

 				echo 'Zdjecie załadowane poprawnie';
 			}

 	}

 }





?>
1

W różnych językach, nie zawsze framework to dobra szkoła OOP. Często tak, ale całkiem dużo frameworków nie jest przykładem dobrego OOP

Niejasna jest Twoja propozycja obiektowa.
We mnie aktywuje migające pomarańczowe, że myślisz w kategoriach zmiennych.
Akurat zmiennych to na pewno nie powinieneś rozważać na poziomie projektowym, a w kategoriach funkcjonalności i podziału odpowiedzialności (i dobra nazwa, to jest całkiem ważne, bo kierunkuje myślenie)

Jedna monolitczna klasa Class11 (tzn trudno o niej coś zdroworozsądkowo powiedzieć), to jeszcze nie jest programowanie obiektowe.

3
  1. Klasa File z polami $fileName, $tmpName, itp. implementująca interfejs FileInterface.
  2. Fabryka lub metoda wytwórcza tworząca obiekt z tablicy $_FILES.
  3. Serwis FileUploader, do którego przesyłasz obiekt FileInterface.
  4. Jakaś klasa Config, w której przechowujesz np. ścieżki do uploadu.
  5. Może jakiś validator, sprawdzający, czy plik może zostać zauploadowany.

itd.. xD

Sporo tu można podać rzeczy.

1

Jeśli z praktycznego punktu widzenia już napisałeś coś sobie funkcyjnie, to po co to teraz przepisywać na obiektowo, skoro to Ci raczej nie potrzebne? Programowanie obiektowe zostało wymyślone, aby ułatwiać pracę, a nie żeby najpierw pisać funkcyjnie, a przepisywać to na obiektowo, żeby było ładniej.

1

Jeżeli zakładasz rozbudowę skryptu, albo chcesz to zrobić w celach edukacyjnych to przerabiaj na OOP. W przeciwnym wypadku, do malutkich skryptów na 30 linii, nie związanych z większym projektem, nie ma specjalnie sensu tworzyć kilku klas, bo wtedy to wszystko spuchnie do kilku plików, i ponad 100 linii.

Czym większy projekt i bardziej skomplikowana struktura+algorytmy, tym większy sens w używaniu OOP i wzorców projektowych.

0

zacznij od projektu obiektów i powiązań miedzy nimi bez wzorowania się na się tym co już napisałeś

1 użytkowników online, w tym zalogowanych: 0, gości: 1