autoloader 구성.
class 정의
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
class Json{
|
||||
private static function setHeaderNoCache(){
|
||||
if(!headers_sent()) {
|
||||
header('Expires: Wed, 01 Jan 2014 00:00:00 GMT');
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', FALSE);
|
||||
header('Pragma: no-cache');
|
||||
}
|
||||
}
|
||||
|
||||
public static function encode($value, $pretty = false){
|
||||
if($pretty){
|
||||
$flag = JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT;
|
||||
}
|
||||
else{
|
||||
$flag = JSON_UNESCAPED_UNICODE;
|
||||
}
|
||||
return json_encode($value, $flag);
|
||||
}
|
||||
|
||||
public static function decode($value){
|
||||
return json_decode($value, true);
|
||||
}
|
||||
|
||||
public static function die($value, $noCache = true, $pretty = false, $die = true){
|
||||
if($noCache){
|
||||
self::setHeaderNoCache();
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
echo Json::encode($value, $pretty);
|
||||
if($die){
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
class Lock {
|
||||
private static $l = ROOT.'/d_log/lock.txt';
|
||||
|
||||
public static function Busy() {
|
||||
$fp = fopen(Lock::$l, 'r');
|
||||
$lock = fread($fp, 1);
|
||||
fclose($fp);
|
||||
|
||||
if($lock == 1) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
private static function LockFile() {
|
||||
$fp = fopen(Lock::$l, 'r');
|
||||
$lock = fread($fp, 1);
|
||||
fclose($fp);
|
||||
|
||||
if($lock == 1) return false;
|
||||
|
||||
$fp = fopen(Lock::$l, 'w');
|
||||
if(!flock($fp, LOCK_EX)) { return false; }
|
||||
fwrite($fp, '1');
|
||||
fclose($fp);
|
||||
flock($fp, LOCK_UN);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static function UnlockFile() {
|
||||
$fp = fopen(Lock::$l, 'r');
|
||||
$lock = fread($fp, 1);
|
||||
fclose($fp);
|
||||
|
||||
if($lock == 0) return false;
|
||||
|
||||
$fp = fopen(Lock::$l, 'w');
|
||||
if(!flock($fp, LOCK_EX)) { return false; }
|
||||
fwrite($fp, '0');
|
||||
fclose($fp);
|
||||
flock($fp, LOCK_UN);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function Lock() {
|
||||
/*
|
||||
// 키 생성
|
||||
$key = fileinode(Lock::$l);
|
||||
// 뮤텍스 획득
|
||||
$mutex = sem_get($key);
|
||||
// 락 획득
|
||||
sem_acquire($mutex);
|
||||
*/
|
||||
// 파일에 잠금 걸기
|
||||
return Lock::LockFile();
|
||||
}
|
||||
|
||||
public static function Unlock() {
|
||||
// 파일에 잠금 풀기
|
||||
$res = Lock::UnlockFile();
|
||||
/*
|
||||
// 락 해제
|
||||
sem_release($mutex);
|
||||
*/
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
class util extends utilphp\util{
|
||||
};
|
||||
Reference in New Issue
Block a user