Я пытаюсь передать класс редактирования изображений 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;
}
}
}
Похоже, это сработало, кто-то может проверить, что это правильный способ сделать это? Итак, вместо этой строки:
//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);
@ 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);