/** * Creates a backup if needed or forced * * @param boolean $force */ public static function create($force = false) { if (!self::needs() && !$force) { return false; } $bakdir = App::backups(); $bak = new Archive($bakdir->file(time() . '-' . date('YmdHis') . '.zip')); //add system files $sysdir_len = strlen(App::system()->parent()); $files = App::system()->files(true); foreach ($files as $file) { if ($file->parent() != $bakdir) { $bak->addFile($file, substr($file, $sysdir_len + 1)); } } //add public $pubdir_len = strlen(App::public()->parent()); $files = App::public()->files(true); foreach ($files as $file) { $bak->addFile($file, substr($file, $pubdir_len + 1)); } $bak->save(); self::clean(); }