pisanie obiektowe

Odpowiedz Nowy wątek
2020-07-31 12:51

Rejestracja: 3 lata temu

Ostatnio: 9 godzin temu

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';
            }

    }

 }

?>
edytowany 2x, ostatnio: Łapa_krk, 2020-07-31 13:01

Pozostało 580 znaków

2020-07-31 13:12

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

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.

edytowany 2x, ostatnio: AnyKtokolwiek, 2020-07-31 13:14
wiem że to może tez nie być dobry i rozbudowany kod żeby go przerabiać na obiektowy ? tak mi się wydaje. W takim razie jaka jest twoja propozycja użyć frameworka? - Łapa_krk 2020-07-31 13:24
Zainteresowałeś mnie słowem "obiektowy" ogólnie, ale nie jestem nadmiernie aktywny w PHP, oczekuj podpowiedzi od innych - AnyKtokolwiek 2020-07-31 13:30

Pozostało 580 znaków

2020-07-31 13:29

Rejestracja: 6 lat temu

Ostatnio: 11 godzin temu

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.

edytowany 1x, ostatnio: serek, 2020-07-31 13:30
własnie o to mi chodzi tylko co najkorzystniej ? - Łapa_krk 2020-07-31 13:55
który z podpunktów które wymieniłeś byłoby najsensowniej - Łapa_krk 2020-07-31 14:19
Hmm... Wszystkie? :P - serek 2020-07-31 17:22

Pozostało 580 znaków

2020-07-31 13:32

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

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.

własciwie po nic wiem ze w praktycznym zastosowaniu w tym przypadku chyba nie ma sensu. Chodzi o cele dydaktyczne i nauki. - Łapa_krk 2020-07-31 13:56
Aaa, to jak najbardziej, uczyć się zawsze warto. - PaulGilbert 2020-07-31 14:23

Pozostało 580 znaków

2020-08-01 10:12

Rejestracja: 2 lata temu

Ostatnio: 7 godzin temu

Lokalizacja: 700m n.p.m.

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.

edytowany 3x, ostatnio: TomRZ, 2020-08-01 10:13

Pozostało 580 znaków

2020-08-01 10:56

Rejestracja: 2 lata temu

Ostatnio: 8 godzin temu

0

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

Pozostało 580 znaków

Odpowiedz

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