mening / suggesties
zouden jullie een mening of suggestie kunnen geven?
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
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
<?php
class getFiles{
private $folder;
private $extension;
private $retType;
public $files = array();
function __construct($folder, $extension, $retType){
if( !empty($folder) && !empty($extension) && !empty($retType) ){
$this->folder = $folder;
$this->extension = $extension;
$this->retType = $retType;
}
else
{
die(' <font color="#FF0000"> One or more constructor arguments are missing! </font> ');
}
}
function returnFiles(){
if( $dir = @opendir($this->folder) ){
while( FALSE !== ($file = readdir($dir)) ){
$getFile = $this->folder . '/' . $file;
$getExtention = pathinfo($getFile);
$getExtention['extension'] = !empty($getExtention['extension']) ? $getExtention['extension'] : '';
if( $getExtention['extension'] == $this->extension ){
$this->files[] = $file;
}
} closedir( $dir );
}
if( count($this->files) != NULL ){
return $this->files;
}
else
{
die(' <font color="#FF0000"> Ooops! something must have gone wrong! make sure that you selected the right path and or extension ( '. $this->folder .' => '. $this->extension .' ) </font> ');
}
}
function __destruct(){
// print('X_x');
}
}
$obj = new getFiles('public_html/public_html','php','1');
?>
class getFiles{
private $folder;
private $extension;
private $retType;
public $files = array();
function __construct($folder, $extension, $retType){
if( !empty($folder) && !empty($extension) && !empty($retType) ){
$this->folder = $folder;
$this->extension = $extension;
$this->retType = $retType;
}
else
{
die(' <font color="#FF0000"> One or more constructor arguments are missing! </font> ');
}
}
function returnFiles(){
if( $dir = @opendir($this->folder) ){
while( FALSE !== ($file = readdir($dir)) ){
$getFile = $this->folder . '/' . $file;
$getExtention = pathinfo($getFile);
$getExtention['extension'] = !empty($getExtention['extension']) ? $getExtention['extension'] : '';
if( $getExtention['extension'] == $this->extension ){
$this->files[] = $file;
}
} closedir( $dir );
}
if( count($this->files) != NULL ){
return $this->files;
}
else
{
die(' <font color="#FF0000"> Ooops! something must have gone wrong! make sure that you selected the right path and or extension ( '. $this->folder .' => '. $this->extension .' ) </font> ');
}
}
function __destruct(){
// print('X_x');
}
}
$obj = new getFiles('public_html/public_html','php','1');
?>
een kleine opsomming:
- die()... door een fout in deze klasse zou je je hele applicatie dood gooien? dat lijkt me iets te grof.
- je klasse naam klinkt als een functie... ik gebruik altijd een hoofdletter voor mijn klasse namen... Files zou dus toepasselijker zijn.
- de functie returnFiles heeft geen verwachtbaar resultaat...deze returned of een array of helemaal niks?... dat is ook best slordig en zeer ongebruikelijk in het OO programmeren.
- en waarom is je files attribute public? je wilt toch niet dat deze zomaar beinvloedt kan worden?
Tot zover even mijn eerste indruk/kritiek.
Maar ga vooral door met proberen... je bent goed opweg:)
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
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
<?php
class getFiles{
private $folder;
private $extension;
private $files = array();
function __construct($folder, $extension){
if( !empty($folder) && !empty($extension) ){
$this->folder = $folder;
$this->extension = $extension;
}
}
function returnFiles(){
if( $dir = @opendir($this->folder) && $constructorError != TRUE){
while( FALSE !== ($file = readdir($dir)) ){
$getFile = $this->folder . '/' . $file;
$getExtention = pathinfo($getFile);
$getExtention['extension'] = !empty($getExtention['extension']) ? $getExtention['extension'] : NULL;
if( $getExtention['extension'] == $this->extension ){
$this->files[] = $this->folder . '/' . $file;
}
} closedir( $dir );
}
if( count($this->files) != NULL ){
return $this->files;
}
else
{
return (' <font color="#FF0000"> Ooops! something must have gone wrong! make sure that you selected the right path and or extension! </font> ');
}
}
function __destruct(){
// print('X_x');
}
}
?>
class getFiles{
private $folder;
private $extension;
private $files = array();
function __construct($folder, $extension){
if( !empty($folder) && !empty($extension) ){
$this->folder = $folder;
$this->extension = $extension;
}
}
function returnFiles(){
if( $dir = @opendir($this->folder) && $constructorError != TRUE){
while( FALSE !== ($file = readdir($dir)) ){
$getFile = $this->folder . '/' . $file;
$getExtention = pathinfo($getFile);
$getExtention['extension'] = !empty($getExtention['extension']) ? $getExtention['extension'] : NULL;
if( $getExtention['extension'] == $this->extension ){
$this->files[] = $this->folder . '/' . $file;
}
} closedir( $dir );
}
if( count($this->files) != NULL ){
return $this->files;
}
else
{
return (' <font color="#FF0000"> Ooops! something must have gone wrong! make sure that you selected the right path and or extension! </font> ');
}
}
function __destruct(){
// print('X_x');
}
}
?>
Code (php)
als je iets gooit moet je het ook weer opvangen:
dit zal dus een foutmelding teruggeven die jij gemaakt hebt.
verdere tip: gebruik geen html in een class. Ik bepaal zelf wel hoe ik het op het scherm wil hebben staan. (oftewel: een class zou je in principe op elke site weer opnieuw aan kunnen roepen zonder hem te wijzigen)
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
class FileException extends Exception { }
class File
{
private $folder;
private $extension;
private $files;
public function __construct($folder, $extension)
{
if (empty($folder)) {
throw new FileException('Geen folder meegegeven in ' . __CLASS__ . '-constructor');
}
if (empty($extension)) {
throw new FileException('Geen extensie meegegeven in ' . __CLASS__ . '-constructor');
}
$this->folder = $folder;
$this->extension = $extension;
}
public function buildFileList()
{
$dir = @opendir($this->folder);
if (!$dir) {
throw new FileException('Openen van directory mislukt in ' __CLASS__);
}
$this->files = array();
// while (blahblah) { $this->files[] = $file } etc
// geen return nodig
}
public function getFiles()
{
if (empty($this->files)) {
$this->buildFilesList();
}
return $this->files;
}
public function getFolder()
{
return $this->folder;
}
public function getExtension()
{
return $this->extension;
}
public function setFolder($folder)
{
$this->folder = $folder;
}
public function setExtension($extension)
{
$this->extension = $extension;
}
}
try {
$oFile = new File('phphulp', 'jpg');
$aLijst = $oFile->getFiles();
if (empty($aLijst)) {
echo 'Geen bestanden gevonden';
} else {
foreach ($aLijst as $file) {
echo $file . '<br />';
}
}
} catch (FileException $e) {
echo 'Er is iets misgegaan: <br />';
echo $e->getMessage();
/* deze laatste echo kun je misschien beter anders doen, omdat je niet wil
dat uiteindelijke bezoekers een gedetailleerde error-melding krijgen */
}
?>
class FileException extends Exception { }
class File
{
private $folder;
private $extension;
private $files;
public function __construct($folder, $extension)
{
if (empty($folder)) {
throw new FileException('Geen folder meegegeven in ' . __CLASS__ . '-constructor');
}
if (empty($extension)) {
throw new FileException('Geen extensie meegegeven in ' . __CLASS__ . '-constructor');
}
$this->folder = $folder;
$this->extension = $extension;
}
public function buildFileList()
{
$dir = @opendir($this->folder);
if (!$dir) {
throw new FileException('Openen van directory mislukt in ' __CLASS__);
}
$this->files = array();
// while (blahblah) { $this->files[] = $file } etc
// geen return nodig
}
public function getFiles()
{
if (empty($this->files)) {
$this->buildFilesList();
}
return $this->files;
}
public function getFolder()
{
return $this->folder;
}
public function getExtension()
{
return $this->extension;
}
public function setFolder($folder)
{
$this->folder = $folder;
}
public function setExtension($extension)
{
$this->extension = $extension;
}
}
try {
$oFile = new File('phphulp', 'jpg');
$aLijst = $oFile->getFiles();
if (empty($aLijst)) {
echo 'Geen bestanden gevonden';
} else {
foreach ($aLijst as $file) {
echo $file . '<br />';
}
}
} catch (FileException $e) {
echo 'Er is iets misgegaan: <br />';
echo $e->getMessage();
/* deze laatste echo kun je misschien beter anders doen, omdat je niet wil
dat uiteindelijke bezoekers een gedetailleerde error-melding krijgen */
}
?>
Gewijzigd op 01/01/1970 01:00:00 door PHP erik