kcaffe ziarchive 未定义的方法

CakePHP ZipArchive undedifined method

我要输入

class ZipController extends AppController {

$folder_path = 'c:/Testaufgabe';
$zip_name = 'c:/my_zipped_file.zip'; // to simiou kai to onoma tou arxeiou pou tha apothikeuti                

        public function upload(){
        $za = new ZipArchive();
        $res = $za->open($zip_name, ZipArchive::CREATE);

        if($res === TRUE){  
            //$za->addFile($folder_path , basename($folder_path ));   // edo gia deuteri parametro theloume to onoma mono tou arxeiou
            $za->addDir($folder_path, basename($folder_path));
            $za->close();
        } 
        else  { 
            echo 'Could not create a zip archive';
        }   }



public function addDir($path, $root){
//   $za->addEmptyDir($root);
    //echo 'ok';
   // $this->addDirDo($path, $root, $za);
}}

但是当我打电话给 $za->addDir($folder_path, basename($folder_path));

它说调用未定义的方法 ZipArchive::addDir()

我需要一些帮助

我使用 CAKEPHP V3

您不能在 ZipArchive 不存在的对象上调用方法。您在控制器中创建了该方法,而不是在 ZipArchive class... 而是调用控制器的方法怎么样?

    if($res === TRUE){  
        $this->addDir($za, $folder_path, basename($folder_path));
        $za->close();
    }

public function addDir($za, $path, $root){
   $za->addEmptyDir($root);
   echo 'ok';
   $this->addDirDo($path, $root, $za);
}