помогите с ирархией классов

Духовность™

Продвинутый новичок
помогите с ирархией классов

Есть три класса

- element - класс базовый, для всех active record
- articleImage extends element - изображение статьи
- newArticleImage extends articleImage - новое изображение статьи

В классе newArticleImage по дурости были реализованы все методы для загрузки изображений. Работа класса выглядит примерно так:
PHP:
while(...)

$img = new newArticleImage($fromFiles); // $fromFiles - содержимое $_FILES
$img->setTempDirectory($_CONFIG['dir']['temp']);
$img->setImageName(translit::UrlTranslit($_POST['article_image_name'][$id]));
$img->setUploadDir($_CONFIG['dir']['images']['articles']['normal']);
$img->checkFile();

$this->uploads[$id] = $img;

// ...
if ($this->uploads)
{
    foreach ($this->uploads as $img)
    {
        if ($img->saveFile($this->id_article))
        {
            $img->setFileSize($_CONFIG['params']['normal_configs']);
            
            $this->article->setImageInfo($img);
            
            // создаем превью
            foreach ($_CONFIG['dir']['images']['articles']['preview'] as $id => $dir)
            {
                $img->makePreview($dir, $_CONFIG['params']['preview_configs'][$id]);
            }
        }
    }
}
Теперь хотел создать абстрактный класс uploadImage, что бы туда вынести логику загрузки и проверки любых загружаемых изображений, да только вот как теперь это сделать - не знаю. Наследовать тут uploadImage уже неоткуда. Тут наверно круто было бы множественное наследование))

Что посоветуете?
 

gray07

Новичок
Множественное наследование не нужно :)

Стандартное решение - агрегирование, у класса ArticleImage делается свойство uploadImage, в котором объект неабстрактного класса uploadImage, в котором вся логика загрузки изображений
 
Как вариант - сделать отдельную группу классов загрузки (изображения как его часть), и его уже использовать там где нужно. Не привязывая его ни к статьям, ни к чему еще...

Например:
class Upload {
...
}

class UploadImage() extends Upload {
..
}
 
Сверху