[TASK] PSR-2

This commit is contained in:
Kanti 2014-12-17 11:31:43 +01:00
commit 5f6bf63760
2 changed files with 327 additions and 327 deletions

View file

@ -1,531 +1,531 @@
<?php <?php
if (!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) { if (!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) {
error(500, 'dispatch requires at least PHP 5.3 to run.'); error(500, 'dispatch requires at least PHP 5.3 to run.');
} }
function _log($message) function _log($message)
{ {
if (config('debug.enable') == true && php_sapi_name() !== 'cli') { if (config('debug.enable') == true && php_sapi_name() !== 'cli') {
$file = config('debug.log'); $file = config('debug.log');
$type = $file ? 3 : 0; $type = $file ? 3 : 0;
error_log("{$message}\n", $type, $file); error_log("{$message}\n", $type, $file);
} }
} }
function site_url() function site_url()
{ {
if (config('site.url') == null) if (config('site.url') == null)
error(500, '[site.url] is not set'); error(500, '[site.url] is not set');
// Forcing the forward slash // Forcing the forward slash
return rtrim(config('site.url'),'/').'/'; return rtrim(config('site.url'), '/') . '/';
} }
function site_path() function site_path()
{ {
static $_path; static $_path;
if (config('site.url') == null) if (config('site.url') == null)
error(500, '[site.url] is not set'); error(500, '[site.url] is not set');
if (!$_path) if (!$_path)
$_path = rtrim(parse_url(config('site.url'), PHP_URL_PATH),'/'); $_path = rtrim(parse_url(config('site.url'), PHP_URL_PATH), '/');
return $_path; return $_path;
} }
function error($code, $message) function error($code, $message)
{ {
@header("HTTP/1.0 {$code} {$message}", true, $code); @header("HTTP/1.0 {$code} {$message}", true, $code);
die($message); die($message);
} }
function config($key, $value = null) function config($key, $value = null)
{ {
static $_config = array(); static $_config = array();
if ($key === 'source' && file_exists($value)) if ($key === 'source' && file_exists($value))
$_config = parse_ini_file($value, true); $_config = parse_ini_file($value, true);
elseif ($value == null) elseif ($value == null)
return (isset($_config[$key]) ? $_config[$key] : null); return (isset($_config[$key]) ? $_config[$key] : null);
else else
$_config[$key] = $value; $_config[$key] = $value;
} }
function to_b64($str) function to_b64($str)
{ {
$str = base64_encode($str); $str = base64_encode($str);
$str = preg_replace('/\//', '_', $str); $str = preg_replace('/\//', '_', $str);
$str = preg_replace('/\+/', '.', $str); $str = preg_replace('/\+/', '.', $str);
$str = preg_replace('/\=/', '-', $str); $str = preg_replace('/\=/', '-', $str);
return trim($str, '-'); return trim($str, '-');
} }
function from_b64($str) function from_b64($str)
{ {
$str = preg_replace('/\_/', '/', $str); $str = preg_replace('/\_/', '/', $str);
$str = preg_replace('/\./', '+', $str); $str = preg_replace('/\./', '+', $str);
$str = preg_replace('/\-/', '=', $str); $str = preg_replace('/\-/', '=', $str);
$str = base64_decode($str); $str = base64_decode($str);
return $str; return $str;
} }
if (extension_loaded('mcrypt')) { if (extension_loaded('mcrypt')) {
function encrypt($decoded, $algo = MCRYPT_RIJNDAEL_256, $mode = MCRYPT_MODE_CBC) function encrypt($decoded, $algo = MCRYPT_RIJNDAEL_256, $mode = MCRYPT_MODE_CBC)
{ {
if (($secret = config('cookies.secret')) == null) if (($secret = config('cookies.secret')) == null)
error(500, '[cookies.secret] is not set'); error(500, '[cookies.secret] is not set');
$secret = mb_substr($secret, 0, mcrypt_get_key_size($algo, $mode)); $secret = mb_substr($secret, 0, mcrypt_get_key_size($algo, $mode));
$iv_size = mcrypt_get_iv_size($algo, $mode); $iv_size = mcrypt_get_iv_size($algo, $mode);
$iv_code = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM); $iv_code = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$encrypted = to_b64(mcrypt_encrypt($algo, $secret, $decoded, $mode, $iv_code)); $encrypted = to_b64(mcrypt_encrypt($algo, $secret, $decoded, $mode, $iv_code));
return sprintf('%s|%s', $encrypted, to_b64($iv_code)); return sprintf('%s|%s', $encrypted, to_b64($iv_code));
} }
function decrypt($encoded, $algo = MCRYPT_RIJNDAEL_256, $mode = MCRYPT_MODE_CBC) function decrypt($encoded, $algo = MCRYPT_RIJNDAEL_256, $mode = MCRYPT_MODE_CBC)
{ {
if (($secret = config('cookies.secret')) == null) if (($secret = config('cookies.secret')) == null)
error(500, '[cookies.secret] is not set'); error(500, '[cookies.secret] is not set');
$secret = mb_substr($secret, 0, mcrypt_get_key_size($algo, $mode)); $secret = mb_substr($secret, 0, mcrypt_get_key_size($algo, $mode));
list($enc_str, $iv_code) = explode('|', $encoded); list($enc_str, $iv_code) = explode('|', $encoded);
$enc_str = from_b64($enc_str); $enc_str = from_b64($enc_str);
$iv_code = from_b64($iv_code); $iv_code = from_b64($iv_code);
$enc_str = mcrypt_decrypt($algo, $secret, $enc_str, $mode, $iv_code); $enc_str = mcrypt_decrypt($algo, $secret, $enc_str, $mode, $iv_code);
return rtrim($enc_str, "\0"); return rtrim($enc_str, "\0");
} }
} }
function set_cookie($name, $value, $expire = 31536000, $path = '/') function set_cookie($name, $value, $expire = 31536000, $path = '/')
{ {
$value = (function_exists('encrypt') ? encrypt($value) : $value); $value = (function_exists('encrypt') ? encrypt($value) : $value);
setcookie($name, $value, time() + $expire, $path); setcookie($name, $value, time() + $expire, $path);
} }
function get_cookie($name) function get_cookie($name)
{ {
$value = from($_COOKIE, $name); $value = from($_COOKIE, $name);
if ($value) if ($value)
$value = (function_exists('decrypt') ? decrypt($value) : $value); $value = (function_exists('decrypt') ? decrypt($value) : $value);
return $value; return $value;
} }
function delete_cookie() function delete_cookie()
{ {
$cookies = func_get_args(); $cookies = func_get_args();
foreach ($cookies as $ck) foreach ($cookies as $ck)
setcookie($ck, '', -10, '/'); setcookie($ck, '', -10, '/');
} }
// if we have APC loaded, enable cache functions // if we have APC loaded, enable cache functions
if (extension_loaded('apc')) { if (extension_loaded('apc')) {
function cache($key, $func, $ttl = 0) function cache($key, $func, $ttl = 0)
{ {
if (($data = apc_fetch($key)) === false) { if (($data = apc_fetch($key)) === false) {
$data = call_user_func($func); $data = call_user_func($func);
if ($data !== null) { if ($data !== null) {
apc_store($key, $data, $ttl); apc_store($key, $data, $ttl);
} }
}
return $data;
} }
return $data;
}
function cache_invalidate() function cache_invalidate()
{ {
foreach (func_get_args() as $key) { foreach (func_get_args() as $key) {
apc_delete($key); apc_delete($key);
}
} }
}
} }
function warn($name = null, $message = null) function warn($name = null, $message = null)
{ {
static $warnings = array(); static $warnings = array();
if ($name == '*') if ($name == '*')
return $warnings; return $warnings;
if (!$name) if (!$name)
return count(array_keys($warnings)); return count(array_keys($warnings));
if (!$message) if (!$message)
return isset($warnings[$name]) ? $warnings[$name] : null ; return isset($warnings[$name]) ? $warnings[$name] : null;
$warnings[$name] = $message; $warnings[$name] = $message;
} }
function _u($str) function _u($str)
{ {
return urlencode($str); return urlencode($str);
} }
function _h($str, $enc = 'UTF-8', $flags = ENT_QUOTES) function _h($str, $enc = 'UTF-8', $flags = ENT_QUOTES)
{ {
return htmlentities($str, $flags, $enc); return htmlentities($str, $flags, $enc);
} }
function from($source, $name) function from($source, $name)
{ {
if (is_array($name)) { if (is_array($name)) {
$data = array(); $data = array();
foreach ($name as $k) foreach ($name as $k)
$data[$k] = isset($source[$k]) ? $source[$k] : null ; $data[$k] = isset($source[$k]) ? $source[$k] : null;
return $data; return $data;
} }
return isset($source[$name]) ? $source[$name] : null ; return isset($source[$name]) ? $source[$name] : null;
} }
function stash($name, $value = null) function stash($name, $value = null)
{ {
static $_stash = array(); static $_stash = array();
if ($value === null) if ($value === null)
return isset($_stash[$name]) ? $_stash[$name] : null; return isset($_stash[$name]) ? $_stash[$name] : null;
$_stash[$name] = $value; $_stash[$name] = $value;
return $value; return $value;
} }
function method($verb = null) function method($verb = null)
{ {
if ($verb == null || (strtoupper($verb) == strtoupper($_SERVER['REQUEST_METHOD']))) if ($verb == null || (strtoupper($verb) == strtoupper($_SERVER['REQUEST_METHOD'])))
return strtoupper($_SERVER['REQUEST_METHOD']); return strtoupper($_SERVER['REQUEST_METHOD']);
error(400, 'bad request'); error(400, 'bad request');
} }
function client_ip() function client_ip()
{ {
if (isset($_SERVER['HTTP_CLIENT_IP'])) if (isset($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP']; return $_SERVER['HTTP_CLIENT_IP'];
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
return $_SERVER['HTTP_X_FORWARDED_FOR']; return $_SERVER['HTTP_X_FORWARDED_FOR'];
return $_SERVER['REMOTE_ADDR']; return $_SERVER['REMOTE_ADDR'];
} }
function redirect(/* $code_or_path, $path_or_cond, $cond */) function redirect(/* $code_or_path, $path_or_cond, $cond */)
{ {
$argv = func_get_args(); $argv = func_get_args();
$argc = count($argv); $argc = count($argv);
$path = null; $path = null;
$code = 302; $code = 302;
$cond = true; $cond = true;
switch ($argc) { switch ($argc) {
case 3: case 3:
list($code, $path, $cond) = $argv; list($code, $path, $cond) = $argv;
break; break;
case 2: case 2:
if (is_string($argv[0]) ? $argv[0] : $argv[1]) { if (is_string($argv[0]) ? $argv[0] : $argv[1]) {
$code = 302; $code = 302;
$path = $argv[0]; $path = $argv[0];
$cond = $argv[1]; $cond = $argv[1];
} else { } else {
$code = $argv[0]; $code = $argv[0];
$path = $argv[1]; $path = $argv[1];
} }
break; break;
case 1: case 1:
if (!is_string($argv[0])) if (!is_string($argv[0]))
error(500, 'bad call to redirect()'); error(500, 'bad call to redirect()');
$path = $argv[0]; $path = $argv[0];
break; break;
default: default:
error(500, 'bad call to redirect()'); error(500, 'bad call to redirect()');
} }
$cond = (is_callable($cond) ? !!call_user_func($cond) : !!$cond); $cond = (is_callable($cond) ? !!call_user_func($cond) : !!$cond);
if (!$cond) if (!$cond)
return; return;
header('Location: '.$path, true, $code); header('Location: ' . $path, true, $code);
exit; exit;
} }
function partial($view, $locals = null) function partial($view, $locals = null)
{ {
if (is_array($locals) && count($locals)) { if (is_array($locals) && count($locals)) {
extract($locals, EXTR_SKIP); extract($locals, EXTR_SKIP);
} }
if (($view_root = config('views.root')) == null) if (($view_root = config('views.root')) == null)
error(500, "[views.root] is not set"); error(500, "[views.root] is not set");
$path = basename($view); $path = basename($view);
$view = preg_replace('/'.$path.'$/', "_{$path}", $view); $view = preg_replace('/' . $path . '$/', "_{$path}", $view);
$view = "{$view_root}/{$view}.html.php"; $view = "{$view_root}/{$view}.html.php";
if (file_exists($view)) { if (file_exists($view)) {
ob_start(); ob_start();
require $view; require $view;
return ob_get_clean(); return ob_get_clean();
} else { } else {
error(500, "partial [{$view}] not found"); error(500, "partial [{$view}] not found");
} }
return ''; return '';
} }
function content($value = null) function content($value = null)
{ {
return stash('$content$', $value); return stash('$content$', $value);
} }
function render($view, $locals = null, $layout = null) function render($view, $locals = null, $layout = null)
{ {
$login = login(); $login = login();
if(!$login) { if (!$login) {
$c = str_replace('/', '#', str_replace('?', '~', $_SERVER['REQUEST_URI'])); $c = str_replace('/', '#', str_replace('?', '~', $_SERVER['REQUEST_URI']));
$dir = 'cache/page'; $dir = 'cache/page';
$cachefile = $dir. '/' . $c . '.cache'; $cachefile = $dir . '/' . $c . '.cache';
if(is_dir($dir) === false) { if (is_dir($dir) === false) {
mkdir($dir, 0777, true); mkdir($dir, 0777, true);
} }
} }
if (is_array($locals) && count($locals)) { if (is_array($locals) && count($locals)) {
extract($locals, EXTR_SKIP); extract($locals, EXTR_SKIP);
} }
if (($view_root = config('views.root')) == null) if (($view_root = config('views.root')) == null)
error(500, "[views.root] is not set"); error(500, "[views.root] is not set");
ob_start(); ob_start();
include "{$view_root}/{$view}.html.php"; include "{$view_root}/{$view}.html.php";
content(trim(ob_get_clean())); content(trim(ob_get_clean()));
if ($layout !== false) { if ($layout !== false) {
if ($layout == null) { if ($layout == null) {
$layout = config('views.layout'); $layout = config('views.layout');
$layout = ($layout == null) ? 'layout' : $layout; $layout = ($layout == null) ? 'layout' : $layout;
} }
$layout = "{$view_root}/{$layout}.html.php"; $layout = "{$view_root}/{$layout}.html.php";
header('Content-type: text/html; charset=utf-8'); header('Content-type: text/html; charset=utf-8');
ob_start(); ob_start();
require $layout; require $layout;
if(!$login) { if (!$login) {
if (!file_exists($cachefile)) { if (!file_exists($cachefile)) {
file_put_contents($cachefile, ob_get_contents()); file_put_contents($cachefile, ob_get_contents());
} }
} }
echo trim(ob_get_clean()); echo trim(ob_get_clean());
} else { } else {
echo content(); echo content();
} }
} }
function json($obj, $code = 200) function json($obj, $code = 200)
{ {
header('Content-type: application/json', true, $code); header('Content-type: application/json', true, $code);
echo json_encode($obj); echo json_encode($obj);
exit; exit;
} }
function condition() function condition()
{ {
static $cb_map = array(); static $cb_map = array();
$argv = func_get_args(); $argv = func_get_args();
$argc = count($argv); $argc = count($argv);
if (!$argc) if (!$argc)
error(500, 'bad call to condition()'); error(500, 'bad call to condition()');
$name = array_shift($argv); $name = array_shift($argv);
$argc = $argc - 1; $argc = $argc - 1;
if (!$argc && is_callable($cb_map[$name])) if (!$argc && is_callable($cb_map[$name]))
return call_user_func($cb_map[$name]); return call_user_func($cb_map[$name]);
if (is_callable($argv[0])) if (is_callable($argv[0]))
return ($cb_map[$name] = $argv[0]); return ($cb_map[$name] = $argv[0]);
if (is_callable($cb_map[$name])) if (is_callable($cb_map[$name]))
return call_user_func_array($cb_map[$name], $argv); return call_user_func_array($cb_map[$name], $argv);
error(500, 'condition ['.$name.'] is undefined'); error(500, 'condition [' . $name . '] is undefined');
} }
function middleware($cb_or_path = null) function middleware($cb_or_path = null)
{ {
static $cb_map = array(); static $cb_map = array();
if ($cb_or_path == null || is_string($cb_or_path)) { if ($cb_or_path == null || is_string($cb_or_path)) {
foreach ($cb_map as $cb) { foreach ($cb_map as $cb) {
call_user_func($cb, $cb_or_path); call_user_func($cb, $cb_or_path);
}
} else {
array_push($cb_map, $cb_or_path);
} }
} else {
array_push($cb_map, $cb_or_path);
}
} }
function filter($sym, $cb_or_val = null) function filter($sym, $cb_or_val = null)
{ {
static $cb_map = array(); static $cb_map = array();
if (is_callable($cb_or_val)) { if (is_callable($cb_or_val)) {
$cb_map[$sym] = $cb_or_val; $cb_map[$sym] = $cb_or_val;
return; return;
}
if (is_array($sym) && count($sym) > 0) {
foreach ($sym as $s) {
$s = substr($s, 1);
if (isset($cb_map[$s]) && isset($cb_or_val[$s]))
call_user_func($cb_map[$s], $cb_or_val[$s]);
} }
return;
}
error(500, 'bad call to filter()'); if (is_array($sym) && count($sym) > 0) {
foreach ($sym as $s) {
$s = substr($s, 1);
if (isset($cb_map[$s]) && isset($cb_or_val[$s]))
call_user_func($cb_map[$s], $cb_or_val[$s]);
}
return;
}
error(500, 'bad call to filter()');
} }
function route_to_regex($route) function route_to_regex($route)
{ {
$route = preg_replace_callback('@:[\w]+@i', function ($matches) { $route = preg_replace_callback('@:[\w]+@i', function ($matches) {
$token = str_replace(':', '', $matches[0]); $token = str_replace(':', '', $matches[0]);
return '(?P<'.$token.'>[a-z0-9_\0-\.]+)'; return '(?P<' . $token . '>[a-z0-9_\0-\.]+)';
}, $route); }, $route);
return '@^'.rtrim($route, '/').'$@i'; return '@^' . rtrim($route, '/') . '$@i';
} }
function route($method, $pattern, $callback = null) function route($method, $pattern, $callback = null)
{ {
// callback map by request type // callback map by request type
static $route_map = array( static $route_map = array(
'GET' => array(), 'GET' => array(),
'POST' => array() 'POST' => array()
);
$method = strtoupper($method);
if (!in_array($method, array('GET', 'POST')))
error(500, 'Only GET and POST are supported');
// a callback was passed, so we create a route defiition
if ($callback !== null) {
// create a route entry for this pattern
$route_map[$method][$pattern] = array(
'xp' => route_to_regex($pattern),
'cb' => $callback
); );
} else { $method = strtoupper($method);
if (!in_array($method, array('GET', 'POST')))
error(500, 'Only GET and POST are supported');
// a callback was passed, so we create a route defiition
if ($callback !== null) {
// create a route entry for this pattern
$route_map[$method][$pattern] = array(
'xp' => route_to_regex($pattern),
'cb' => $callback
);
} else {
// callback is null, so this is a route invokation. look up the callback. // callback is null, so this is a route invokation. look up the callback.
foreach ($route_map[$method] as $pat => $obj) { foreach ($route_map[$method] as $pat => $obj) {
// if the requested uri ($pat) has a matching route, let's invoke the cb // if the requested uri ($pat) has a matching route, let's invoke the cb
if (!preg_match($obj['xp'], $pattern, $vals)) if (!preg_match($obj['xp'], $pattern, $vals))
continue; continue;
// call middleware // call middleware
middleware($pattern); middleware($pattern);
// construct the params for the callback // construct the params for the callback
array_shift($vals); array_shift($vals);
preg_match_all('@:([\w]+)@', $pat, $keys, PREG_PATTERN_ORDER); preg_match_all('@:([\w]+)@', $pat, $keys, PREG_PATTERN_ORDER);
$keys = array_shift($keys); $keys = array_shift($keys);
$argv = array(); $argv = array();
foreach ($keys as $index => $id) {
$id = substr($id, 1);
if (isset($vals[$id])) {
array_push($argv, trim(urldecode($vals[$id])));
}
}
// call filters if we have symbols
if (count($keys)) {
filter(array_values($keys), $vals);
}
// if cb found, invoke it
if (is_callable($obj['cb'])) {
call_user_func_array($obj['cb'], $argv);
}
// leave after first match
break;
foreach ($keys as $index => $id) {
$id = substr($id, 1);
if (isset($vals[$id])) {
array_push($argv, trim(urldecode($vals[$id])));
} }
}
// call filters if we have symbols
if (count($keys)) {
filter(array_values($keys), $vals);
}
// if cb found, invoke it
if (is_callable($obj['cb'])) {
call_user_func_array($obj['cb'], $argv);
}
// leave after first match
break;
} }
}
} }
function get($path, $cb) function get($path, $cb)
{ {
route('GET', $path, $cb); route('GET', $path, $cb);
} }
function post($path, $cb) function post($path, $cb)
{ {
route('POST', $path, $cb); route('POST', $path, $cb);
} }
function flash($key, $msg = null, $now = false) function flash($key, $msg = null, $now = false)
{ {
static $x = array(), static $x = array(),
$f = null; $f = null;
$f = (config('cookies.flash') ? config('cookies.flash') : '_F'); $f = (config('cookies.flash') ? config('cookies.flash') : '_F');
if ($c = get_cookie($f)) if ($c = get_cookie($f))
$c = json_decode($c, true); $c = json_decode($c, true);
else else
$c = array(); $c = array();
if ($msg == null) { if ($msg == null) {
if (isset($c[$key])) { if (isset($c[$key])) {
$x[$key] = $c[$key]; $x[$key] = $c[$key];
unset($c[$key]); unset($c[$key]);
set_cookie($f, json_encode($c)); set_cookie($f, json_encode($c));
}
return (isset($x[$key]) ? $x[$key] : null);
} }
return (isset($x[$key]) ? $x[$key] : null); if (!$now) {
} $c[$key] = $msg;
set_cookie($f, json_encode($c));
}
if (!$now) { $x[$key] = $msg;
$c[$key] = $msg;
set_cookie($f, json_encode($c));
}
$x[$key] = $msg;
} }
function dispatch() function dispatch()
{ {
$path = urldecode($_SERVER['REQUEST_URI']); $path = urldecode($_SERVER['REQUEST_URI']);
if (config('site.url') !== null) if (config('site.url') !== null)
$path = preg_replace('@^'.preg_quote(site_path()).'@', '', $path); $path = preg_replace('@^' . preg_quote(site_path()) . '@', '', $path);
$parts = preg_split('/\?/', $path, -1, PREG_SPLIT_NO_EMPTY); $parts = preg_split('/\?/', $path, -1, PREG_SPLIT_NO_EMPTY);
$uri = trim($parts[0], '/'); $uri = trim($parts[0], '/');
$uri = strlen($uri) ? $uri : 'index'; $uri = strlen($uri) ? $uri : 'index';
route(method(), "/{$uri}"); route(method(), "/{$uri}");
} }

View file

@ -2,20 +2,22 @@
$updater = new Kanti\HubUpdater("danpros/htmly"); $updater = new Kanti\HubUpdater("danpros/htmly");
$info = $updater->getCurrentInfo(); $info = $updater->getCurrentInfo();
$versionNumber = substr($info['tag_name'],1); $versionNumber = substr($info['tag_name'], 1);
function isGraterThan($string){ function isGraterThan($string)
{
global $versionNumber; global $versionNumber;
return (version_compare($versionNumber,$string) > 0); return (version_compare($versionNumber, $string) > 0);
} }
// http://stackoverflow.com/questions/3338123/how-do-i-recursively-delete-a-directory-and-its-entire-contents-files-sub-dir // http://stackoverflow.com/questions/3338123/how-do-i-recursively-delete-a-directory-and-its-entire-contents-files-sub-dir
function rrmdir($dir) { function rrmdir($dir)
{
if (is_dir($dir)) { if (is_dir($dir)) {
$objects = scandir($dir); $objects = scandir($dir);
foreach ($objects as $object) { foreach ($objects as $object) {
if ($object != "." && $object != "..") { if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); if (filetype($dir . "/" . $object) == "dir") rrmdir($dir . "/" . $object); else unlink($dir . "/" . $object);
} }
} }
reset($objects); reset($objects);
@ -24,13 +26,11 @@ function rrmdir($dir) {
} }
//run upgrade specific stuff //run upgrade specific stuff
if(isGraterThan("2.3")) {// 2.4, 2.5, ... if (isGraterThan("2.3")) {// 2.4, 2.5, ...
if(file_exists("vendor/")){ if (file_exists("vendor/")) {
rrmdir("vendor/"); rrmdir("vendor/");
} }
} }
if(isGraterThan("2.3")) { file_put_contents("index.php", file_get_contents("system/upgrade/index.php"));
file_put_contents("index.php",file_get_contents("system/upgrade/index.php")); rrmdir("system/upgrade/");
rrmdir("system/upgrade/");
}