Maar goed. Zie een class als een apart stukje programma, een zelfstandig ding wat gescheiden is van de rest van je applicatie. Het eerste wat je jezelf moet afvragen:
Wat is de taak van de class die ik ga schrijven?
een heel erg simpele class zou er zo uit kunnen zien:
<?php
class Folder
{
protected $path;
// De constructor
public function __construct($folder)
{
$this->setFolder($folder);
}
// getter
function getPath() {
return $this->path;
}
//setter
function setPath($path) {
$this->path = $path;
}
}
// maak een nieuwe INSTANTIE van Folder aan
$circleFolder = new Folder( $locatie . '/' . topng ($_FILES['file']['name'][$i]) );
// gebruik de METHOD getFolder()
echo $circleFolder->getPath();
// maak een tweede instantie aan
$squareFolder = new Folder( $destination . '/' . $_FILES['file']['name'][$i] );
// gebruik de METHOD getFolder()
echo $squareFolder->getPath();
?>
Zie de getter en setter als de bezorg- en afhaalbalie via de getters en setters communiceer je met je class. Zoals je ziet is $path protected. Deze kun je van buiten de class dan ook niet rechtstreeks lezen of schrijven. Je moet het dan dus wel via de getter en setter doen.
Een goed gebruik is om iedere class in een apart bestand te laten met dezelfde naam als de class heeft. de classnaam Folder zou dan dus in Folder.php opgeslagen worden.
Deze class heeft als enigste taak om het 'pad' te onthouden en is dus wel heel erg basic maar je kan de functionaliteit van de class uitbreiden. Het is wel handig als je iets leest over constructors en public/protected/private properties en methods.
@topicstarter
Ik snap de omschrijving van wat je probeert te bereiken niet. Het helpt ook niet dat de zinnen waarin je dit formuleert letterlijk kop noch staart hebben.
Is het de bedoeling dat je iets opsteekt van:
- verbanden tussen wiskundige figuren en hoe je dit tot iets object georiënteerds combineert (inheritance?)
- het uploaden van bestanden
- directorystructuren
- arrays
?
Het lijkt mij sterk dat je alles in 1x dient te combineren in één stuk code (of klasse), althans, ik zie niet hoe al deze componenten zich onderling verhouden. Ik denk ook dat het je meer helpt als je dit opdeelt in stukken, in plaats van dat je alles in 1x probeert te doen.
Met een class bundel je vaak een aantal samenhangende operaties tot één werkend geheel waarmee je dingen kunt doen. Ik zie niet helemaal wat de gemeenschappelijke noemer zou moeten zijn in het bovenstaande geheel, en volgens mij is het (dus) ook een combinatie van zaken, in plaats van één magische (gigantische?) klasse die alles doet. Dat is niet het idee van object georiënteerd programmeren.
Hier gaf je nog aan dat het wel om huiswerk ging ;-) Heb je dit nu werkend?
En wat ik al aangaf, kies een taal. Ik zie locatie, destination, vierkant, square, etc. Hoe verwarrend wil je het maken?
yes het werkt nu allemaal maar nu wil ik wat beter worden en probeer ik dingen zelf uit
[size=xsmall]Toevoeging op 16/10/2019 11:20:12:[/size]
Frank Nietbelangrijk op 10/10/2019 18:31:26
>> nee voor iets wat ik aan het proberen ben
Dat klinkt vaag...
Maar goed. Zie een class als een apart stukje programma, een zelfstandig ding wat gescheiden is van de rest van je applicatie. Het eerste wat je jezelf moet afvragen:
Wat is de taak van de class die ik ga schrijven?
een heel erg simpele class zou er zo uit kunnen zien:
<?php
class Folder
{
protected $path;
// De constructor
public function __construct($folder)
{
$this->setFolder($folder);
}
// getter
function getPath() {
return $this->path;
}
//setter
function setPath($path) {
$this->path = $path;
}
}
// maak een nieuwe INSTANTIE van Folder aan
$circleFolder = new Folder( $locatie . '/' . topng ($_FILES['file']['name'][$i]) );
// gebruik de METHOD getFolder()
echo $circleFolder->getPath();
// maak een tweede instantie aan
$squareFolder = new Folder( $destination . '/' . $_FILES['file']['name'][$i] );
// gebruik de METHOD getFolder()
echo $squareFolder->getPath();
?>
Zie de getter en setter als de bezorg- en afhaalbalie via de getters en setters communiceer je met je class. Zoals je ziet is $path protected. Deze kun je van buiten de class dan ook niet rechtstreeks lezen of schrijven. Je moet het dan dus wel via de getter en setter doen.
Een goed gebruik is om iedere class in een apart bestand te laten met dezelfde naam als de class heeft. de classnaam Folder zou dan dus in Folder.php opgeslagen worden.
Deze class heeft als enigste taak om het 'pad' te onthouden en is dus wel heel erg basic maar je kan de functionaliteit van de class uitbreiden. Het is wel handig als je iets leest over constructors en public/protected/private properties en methods.
bedankt dit heeft geholpen!
[size=xsmall]Toevoeging op 16/10/2019 11:25:39:[/size]
ik wil mijn .zip bestand in een mapje circles krijgen maar ik krijg deze error:https://ibb.co/RjCtP3w
wat heb ik fout gedaan?
Je mag de foutmelding ook hier delen. Dan hebben andere er nog wat aan als de afbeelding verdwenen is, en dan blijft het forum ook meteen een goede kennisbank.
Ik zet in dat je een volledige pad moet gebruiken.
Je mag de foutmelding ook hier delen. Dan hebben andere er nog wat aan als de afbeelding verdwenen is, en dan blijft het forum ook meteen een goede kennisbank.
Ik zet in dat je een volledige pad moet gebruiken.