Hoe OOP is dit begin? Hoe roep ik een public var op in een extend?
2 vragen: (ik blijf het proberen ;D )
Allereerst: hoe OO is mijn code hieronder? Het is niet veel, maar moet toch ergens weer het OOP op pakken.
Daarnaast: ik wil de class FileUpload extenden: class Validator Extends FileUpload {}
Hoe kan ik in de Validator de public $maxSize ophalen?
Groet Donny
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
class FileUpload {
protected $extensions = array();
public $maxSize;
protected $file;
public $height;
public $width;
public $createThumbnail = false;
public $thumbWidth;
public $thumbHeight;
public function __construct(){
}
public function setExtension($extension){
if(is_array($extension)){
$this->extensions = $extension;
} else {
$this->extensions[] = $extension;
}
}
public function setFileSize($maxSize){
$this->maxSize = $maxSize;
return $this->maxSize;
}
public function setResolution($width, $height){
$this->width = $width;
$this->height = $height;
}
public function setFile($file){
$this->file = $file;
}
public function setThumbnail(){
$this->createThumbnail = true;
}
public function setThumbResolution($width, $height){
if($this->createThumbnail == true){
$this->thumbWidth = $width;
$this->thumbHeight = $height;
return;
}
throw new Exception('Thumbnails must me enabled!');
}
}
class FileUpload {
protected $extensions = array();
public $maxSize;
protected $file;
public $height;
public $width;
public $createThumbnail = false;
public $thumbWidth;
public $thumbHeight;
public function __construct(){
}
public function setExtension($extension){
if(is_array($extension)){
$this->extensions = $extension;
} else {
$this->extensions[] = $extension;
}
}
public function setFileSize($maxSize){
$this->maxSize = $maxSize;
return $this->maxSize;
}
public function setResolution($width, $height){
$this->width = $width;
$this->height = $height;
}
public function setFile($file){
$this->file = $file;
}
public function setThumbnail(){
$this->createThumbnail = true;
}
public function setThumbResolution($width, $height){
if($this->createThumbnail == true){
$this->thumbWidth = $width;
$this->thumbHeight = $height;
return;
}
throw new Exception('Thumbnails must me enabled!');
}
}
- Een lege constructor heeft geen zin.
- if($this->createThumbnail == true){ daar kun je beter van maken if($this->createThumbnail){
- persoonlijk zou ik die exception bovenaan plaatsen, dus if(!$this->createThumbnail) throw ...
- waarom protected en public properties? In eerste instantie alles private.
- class Validator Extends FileUpload lijkt me niet oké. Een Validator is iets anders dan een FileUploader.
class ImageFileUploader extends FileUploader
Thumbnails moet je ook meer loskoppelen. Je kunt thumbnails maken van afbeeldingen die al eerder zijn geüpload, bijvoorbeeld via FTP. Je kunt bovendien opnieuw thumbnails genereren en bestaande thumbnails vervangen, bijvoorbeeld wanneer je een andere resolutie nodig hebt. Het genereren van de thumbnails hoort daarom ook los te staan van het uploaden van de afbeeldingen, bijvoorbeeld in een class Thumbnail.