Оцените код. При использовании ООП стоит ли писать проверки вне методов?
Вот само задание: 1.Создайте класс Uploader в соответствии с требованиями:
1.1 В конструктор передается имя поля формы, от которого мы ожидаем загрузку файла
1.2 Метод isUploaded() проверяет - был ли загружен файл от данного имени поля
1.3 Метод upload() осуществляет перенос файла (если он был загружен!) из временного места в постоянное
- Попробуйте некоторые методы заканчивать конструкцией return $this; и придумайте этому применение Вот сам код:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Download file</title>
</head>
<body>
<form action="/6/uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="userFile">
<button type="submit">Send</button>
</form>
</body>
</html>
<?php
class Uploader{
public $userFile;
public $NewUserFileName;
public function __construct($userFile){
$this->userFile = $userFile;
$this->NewUserFileName = $NewUserFileName = $_FILES['userFile']['name'];
}
public function isUploaded(){
if(!empty($this->userFile) && 0 == $_FILES['userFile']['error']){
return $this;
}else{
return null;
}
}
public function upload(){
if ($this->isUploaded() == true){
move_uploaded_file($_FILES['userFile']['tmp_name'], __DIR__ . '/files/'. $this->NewUserFileName);
return $this;
}else{
return null;
}
}
}
if(!empty($_FILES['userFile'])){
$myFile = new Uploader($_FILES['userFile']);
$myFile->isUploaded();
$myFile->upload();
}
Смущает вот эта часть кода:
if(!empty($_FILES['userFile'])){
$myFile = new Uploader($_FILES['userFile']);
$myFile->isUploaded();
$myFile->upload();
}
То есть приходиться проверять переменную на пустоту вне метода (так, как при первой загрузке страницы появляются ошибки).
Notice: Undefined index: userFile in /home/den/server/php1.loc/public_html/6/uploader.php on line 47
Notice: Undefined index: userFile in /home/den/server/php1.loc/public_html/6/uploader.php on line 26 И присутствует метод isUploaded() для проверки. Корректно ли писать код приведенный выше?