Как передать класс в другой метод класса

Я пытаюсь передать класс редактирования изображений verot пользовательскому классу, который я создал, но, похоже, он не работает, он ничего не делает, когда я пытаюсь его запустить. Как передать класс изображения verot моему классу?

//Edit.php
//Now I run my class
$process = new ProcessEventLogo();
$process->editEventLogo($event_id,$file_ext,$savepath,new upload(''));

Вот мой пользовательский класс. Я подумал, запустив upload (») для этого метода, я передаю копию класса загрузки verot, к которому я могу получить доступ в своем методе пользовательского класса. Но когда я запускаю его, он даже не проходит путь загрузки $ mainimg->. Фактически $ mainimg = $ fileupload-> upload ($ savefile); возвращает NULL, когда я его var_dump. Что я делаю неправильно?

class ProcessEventLogo {

public function editEventLogo($eventid,$fext,$url,$savepath,$fileupload)
{

//We generate the file name to save this image to
$savefile = $savepath .'event_' .$eventid .'.' .$fext;

//We check to see if the event image is there
$mainimg = $fileupload->upload($savefile);

//We now resize the image
if($mainimg->uploaded)
{

$mainimg->file_overwrite = TRUE;
$mainimg->image_ratio_crop = TRUE;
$mainimg->image_resize = TRUE;
$mainimg->image_x = 50;
$mainimg->image_y = 50;
$mainimg->process($savefile);

if($mainimg->processed)
{
echo $mainimg->error;

}

}

}

0

Решение

Похоже, это сработало, кто-то может проверить, что это правильный способ сделать это? Итак, вместо этой строки:

//We check to see if the event image is there
$mainimg = $fileupload->upload($savefile);

Это сработало.

//We check to see if the event image is there
$mainimg = new $fileupload($savefile);
0

Другие решения

@ mr.void Правильно, так как еще я мог бы передать этот класс своему классу?
метод? Просто кажется, что это неправильный путь

Я думаю, что написать небольшую Фабрику — правильный путь для этого:

class uploadFac {

public function getUploadInstance($file)
{
return new upload($file)
}

}

И используйте это так:

$uplFac = new uploadFac();
$process = new ProcessEventLogo();
$process->editEventLogo($event_id,$file_ext,$savepath,$uplFac);

и в методе:

    public function editEventLogo($eventid,$fext,$url,$savepath,$uplFac)
{
//We generate the file name to save this image to
$savefile = $savepath .'event_' .$eventid .'.' .$fext;
$mainimg = $uplFac->getUploadInstance($savefile);
0

По вопросам рекламы [email protected]