Avatar billede styrk Nybegynder
28. september 2007 - 14:29 Der er 15 kommentarer og
1 løsning

php5 oop class vurdering

Hejsa.

Jeg har i noget tid brugt OOP men har aldrig taget mig sammen til at skifte til php5 oop.

Derfor har jeg nu lavet mig en class i php5 oop og kunne godt tænke mig noget respons på om jeg kan kunne gøre noget anderledes :-)

klassen kan bruges til at resize et billede.

Du kan se den her: http://rasmusstyrk.dk/136

på forhånd tak!
Avatar billede jakobdo Ekspert
29. september 2007 - 09:19 #1
Du kunne f.eks. også tilføje support for GIF og BMP.
Avatar billede styrk Nybegynder
29. september 2007 - 09:37 #2
synes bare jeg have læst et sted at gif ikke er muligt i v. 2+ pga. copyright? :-)
Avatar billede jakobdo Ekspert
29. september 2007 - 09:48 #3
Note: GIF support was removed from the GD library in Version 1.6, and added back in Version 2.0.28. This function is not available between these versions.
Avatar billede styrk Nybegynder
29. september 2007 - 09:52 #4
ahh så har jeg misledt mig selv. Self skal klassen understøtte gif. :)
Avatar billede styrk Nybegynder
29. september 2007 - 10:10 #5
så er gif også understøttet ;>
Avatar billede jakobdo Ekspert
29. september 2007 - 10:29 #6
Denne kode:
if (stristr(strtolower($this->file),'.jpg') || stristr(strtolower($this->file),'.jpeg'))
        {
            $this->format = "JPG";
        }
        else if (stristr(strtolower($this->file),'.png'))
        {
            $this->format = "PNG";
        }
        else if (stristr(strtolower($this->file),'.gif'))
        {
            $this->format = "GIF";
        }
        else
        {
            echo "Unknown file format.";
            exit;
        }

Ville jeg nok hellere bygge op over en switch/case ala min egen artikel her: :o)

http://www.eksperten.dk/artikler/1132

Og så ville jeg også fange FIL EXTENSION med min funktion.
Avatar billede jakobdo Ekspert
29. september 2007 - 10:30 #7
Og BMP bruges ikke meget, men du kunne jo overveje at smide det med alligevel:
http://www.techzine.nl/scripts/425/PHP-functies-imagecreatefrombmp-en-imagebmp.html
Avatar billede styrk Nybegynder
29. september 2007 - 10:41 #8
Så er det rettet :-)
Avatar billede jakobdo Ekspert
29. september 2007 - 10:58 #9
Du kan erstatte:
if ($this->format)
            {
                switch($this->format)
                {
                    case 'JPG':
                        $this->image[oldImage] = ImageCreateFromJpeg($this->file);
                    break;
   
                    case 'PNG':
                        $this->image[oldImage] = ImageCreateFromPng($this->file);
                    break;

                    case 'GIF':
                        $this->image[oldImage] = ImageCreateFromGIF($this->file);
                    break;
                }
            }
med:
switch($this->format)
{
    case 'JPG':
        $this->image[oldImage] = ImageCreateFromJpeg($this->file);
        break;
   
    case 'PNG':
        $this->image[oldImage] = ImageCreateFromPng($this->file);
        break;
   
    case 'GIF':
        $this->image[oldImage] = ImageCreateFromGIF($this->file);
        break;
    default:
        return 'ERROR, WRONG EXTENSION';
}
Avatar billede jakobdo Ekspert
29. september 2007 - 10:59 #10
Og jeg tror også jeg ville bruge exceptions og ikke
echo 'ERROR fejl...';
exit();
Avatar billede styrk Nybegynder
29. september 2007 - 11:39 #11
Så er det rettet.

Hvad er fordelen ved at benytte exceptions?
Avatar billede styrk Nybegynder
29. september 2007 - 11:44 #12
har opdateret getformat så den sætter this->format til hvilket som helst format. Så tjekker vi med din case on formatet er tilladt eller ej.
Avatar billede jakobdo Ekspert
29. september 2007 - 13:42 #13
exceptions er smart når du koder oop, da du kan lave en klasse til at håndtere alle exceptions og dermed præsentere fejl for brugeren, sende email til admin, logge i en fil osv...
Avatar billede styrk Nybegynder
29. september 2007 - 13:50 #14
Jo det kan du have ret i.

Jeg har læst lidt om det her: http://dk2.php.net/exceptions men jeg tror ikke det er særlig relevant i en enkelt klasse :-)

Jeg kunne evt. lave en fejl-handler som laver et billede med fejl-beskeden istedet så hvis man benytter scriptet i en img src="" så får man ikke bare et tomt billede ved fejl.

Men tak for dine svar. læg venligst et svar ;>
Avatar billede jakobdo Ekspert
29. september 2007 - 14:13 #15
Et svar.
Avatar billede jakobdo Ekspert
30. september 2007 - 18:14 #16
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester