upgrade() 정적인 공개 메소드

static public upgrade ( $fromVersion )
예제 #1
0
파일: gitblog.php 프로젝트: rsms/gitblog
 /**
  * Verify integrity of the site, automatically taking any actions to restore
  * it if broken.
  * 
  * Return values:
  *   0  Nothing done (everything is probably OK).
  *   -1 Error (the error has been logged through trigger_error).
  *   1  gitblog cache was updated.
  *   2  gitdir is missing and need to be created (git init).
  *   3  upgrade performed
  */
 static function verify_integrity()
 {
     $r = 0;
     if (!is_dir(gb::$site_dir . '/.git/info/gitblog')) {
         if (!is_dir(gb::$site_dir . '/.git')) {
             # 2: no repo/not initialized
             return 2;
         }
         # 1: gitblog cache updated
         gb_maint::sync_site_state();
         GBRebuilder::rebuild(true);
         return 1;
     }
     # load site.json
     $r = self::load_site_state();
     # check site state
     if ($r === false || !isset(gb::$site_state['url']) || !gb::$site_state['url'] || gb::$site_state['url'] !== gb::$site_url && strpos(gb::$site_url, '://localhost') === false && strpos(gb::$site_url, '://127.0.0.1') === false) {
         return gb_maint::sync_site_state() === false ? -1 : 0;
     } elseif (gb::$site_state['version'] !== gb::$version) {
         return gb_maint::upgrade(gb::$site_state['version']) ? 0 : -1;
     } elseif (gb::$site_state['posts_pagesize'] !== gb::$posts_pagesize) {
         gb_maint::sync_site_state();
         GBRebuilder::rebuild(true);
         return 1;
     }
     return 0;
 }