예제 #1
0
파일: Auth.php 프로젝트: IMPHP/libimphp
 public static function onDestroy()
 {
     if (!Runtime::hasLock("auth")) {
         Runtime::removeLock("session");
     } else {
         Runtime::addLockCallback("auth", [get_called_class(), "onDestroy"]);
     }
 }
예제 #2
0
파일: Database.php 프로젝트: IMPHP/libimphp
 public static function onDestroy()
 {
     if (static::$oConnection !== null) {
         if (!Runtime::hasLock("database")) {
             static::$oConnection->close();
         } else {
             Runtime::addLockCallback("database", [get_called_class(), "onDestroy"]);
         }
     }
 }
예제 #3
0
파일: Cache.php 프로젝트: IMPHP/libimphp
 public static function onDestroy()
 {
     if (Runtime::$SETTINGS->getString("CACHE_DRIVER") == "database") {
         if (!Runtime::hasLock("cache")) {
             Runtime::removeLock("database");
         } else {
             Runtime::addLockCallback("cache", [get_called_class(), "onDestroy"]);
         }
     }
 }
예제 #4
0
파일: Resolver.php 프로젝트: IMPHP/libimphp
 /**
  * Callback for preparing output
  *
  * Used to allow page classes to give a final touch
  * on output before it is sent to the client.
  *
  * @ignore
  */
 public function onPrepareOutput()
 {
     if (!Runtime::hasLock("router")) {
         $controller = $this->getController();
         if ($controller !== null) {
             echo $controller->imOnPrepareOutput(ob_get_clean());
         } else {
             echo ob_get_clean();
         }
     } else {
         Runtime::addLockCallback("router", [$this, "onPrepareOutput"]);
     }
 }
예제 #5
0
파일: Session.php 프로젝트: IMPHP/libimphp
 /** @ignore */
 public function writeBack()
 {
     if (!Runtime::hasLock("session")) {
         if ($this->mSessReady && !in_array(Runtime::$SYSTEM["REQUEST_CLIENT"], ["terminal", "crawler"])) {
             $data = serialize($this->mData);
             if (Runtime::$SETTINGS->getBoolean("SESSION_ENCRYPT_DATA")) {
                 $cryptKey = Runtime::$SETTINGS->getString("SECURITY_PASSWD");
                 if (!empty($cryptKey)) {
                     $data = Crypt::encrypt($data, $cryptKey, true);
                 }
             }
             $this->mSessHandler->write($data);
         }
         $this->mSessReady = false;
     } else {
         Runtime::addLockCallback("session", [$this, "writeBack"]);
     }
 }