Beispiel #1
0
 /**
  * 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();
 }