Оцените код. При использовании ООП стоит ли писать проверки вне методов?

Вот само задание: 1.Создайте класс Uploader в соответствии с требованиями:

1.1 В конструктор передается имя поля формы, от которого мы ожидаем загрузку файла
1.2 Метод isUploaded() проверяет - был ли загружен файл от данного имени поля
1.3 Метод upload() осуществляет перенос файла (если он был загружен!) из временного места в постоянное
  1. Попробуйте некоторые методы заканчивать конструкцией 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() для проверки. Корректно ли писать код приведенный выше?


Ответы (0 шт):