From 5f401a5ba3494e2158ced088f4f377e1a47db5c6 Mon Sep 17 00:00:00 2001 From: printempw Date: Fri, 18 Mar 2016 17:49:52 +0800 Subject: [PATCH] use namespace to organize classes --- admin/index.php | 6 +++--- admin/install.php | 4 ++-- admin/manage.php | 4 ++-- ajax.php | 6 +++--- get.php | 4 ++-- includes/{autoload.inc.php => autoloader.php} | 8 +++++--- includes/{ => classes}/Config.class.php | 5 +++-- .../{ => classes/Database}/AdaptedDatabase.class.php | 9 ++++++++- .../{ => classes/Database}/AuthmeDatabase.class.php | 6 +++++- .../{ => classes/Database}/CrazyDatabase.class.php | 6 +++++- includes/{ => classes/Database}/Database.class.php | 12 +++++++++--- .../{ => classes/Database}/DiscuzDatabase.class.php | 6 +++++- .../Database}/EncryptInterface.class.php | 4 +++- .../{ => classes/Database}/SyncInterface.class.php | 4 +++- includes/{ => classes}/User.class.php | 6 ++++-- includes/{ => classes}/Utils.class.php | 12 +++++------- includes/session.inc.php | 6 +++--- includes/{ => templates}/error.tpl.php | 0 .../{welcome.inc.php => templates/welcome.tpl.php} | 0 index.php | 6 +++--- user/index.php | 4 ++-- user/profile.php | 4 ++-- 22 files changed, 77 insertions(+), 45 deletions(-) rename includes/{autoload.inc.php => autoloader.php} (53%) rename includes/{ => classes}/Config.class.php (93%) rename includes/{ => classes/Database}/AdaptedDatabase.class.php (94%) rename includes/{ => classes/Database}/AuthmeDatabase.class.php (83%) rename includes/{ => classes/Database}/CrazyDatabase.class.php (87%) rename includes/{ => classes/Database}/Database.class.php (94%) rename includes/{ => classes/Database}/DiscuzDatabase.class.php (83%) rename includes/{ => classes/Database}/EncryptInterface.class.php (86%) rename includes/{ => classes/Database}/SyncInterface.class.php (84%) rename includes/{ => classes}/User.class.php (98%) rename includes/{ => classes}/Utils.class.php (87%) rename includes/{ => templates}/error.tpl.php (100%) rename includes/{welcome.inc.php => templates/welcome.tpl.php} (100%) diff --git a/admin/index.php b/admin/index.php index ef03d2a3..75f19abd 100644 --- a/admin/index.php +++ b/admin/index.php @@ -3,7 +3,7 @@ * @Author: prpr * @Date: 2016-02-03 14:39:50 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:44:17 + * @Last Modified time: 2016-03-18 17:45:01 */ require "../includes/session.inc.php"; if (!$user->is_admin) header('Location: ../index.php?msg=看起来你并不是管理员'); @@ -34,7 +34,7 @@ if (!$user->is_admin) header('Location: ../index.php?msg=看起来你并不是 用户管理 个人设置 - +
@@ -50,7 +50,7 @@ if (!$user->is_admin) header('Location: ../index.php?msg=看起来你并不是

注册用户:getRecordNum();?>

上传材质总数:

diff --git a/admin/install.php b/admin/install.php index 0bd231d3..1714d21e 100644 --- a/admin/install.php +++ b/admin/install.php @@ -3,7 +3,7 @@ * @Author: printempw * @Date: 2016-01-16 23:01:33 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 16:34:32 + * @Last Modified time: 2016-03-18 17:46:50 * * Blessing Skin Server Installer */ @@ -29,7 +29,7 @@ if (false): ?> diff --git a/admin/manage.php b/admin/manage.php index 907ef97c..9c927f80 100644 --- a/admin/manage.php +++ b/admin/manage.php @@ -3,7 +3,7 @@ * @Author: printempw * @Date: 2016-03-06 14:19:20 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:44:23 + * @Last Modified time: 2016-03-18 17:45:06 */ require "../includes/session.inc.php"; if (!$user->is_admin) header('Location: ../index.php?msg=看起来你并不是管理员'); @@ -34,7 +34,7 @@ if (!$user->is_admin) header('Location: ../index.php?msg=看起来你并不是 仪表盘 个人设置 - +
diff --git a/ajax.php b/ajax.php index 8c8897a8..30720b3a 100644 --- a/ajax.php +++ b/ajax.php @@ -3,7 +3,7 @@ * @Author: printempw * @Date: 2016-01-16 23:01:33 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:50:43 + * @Last Modified time: 2016-03-18 17:47:22 * * - login, register, logout * - upload, change, delete @@ -16,8 +16,8 @@ header('Access-Control-Allow-Origin: *'); header('Content-type: application/json'); $dir = dirname(__FILE__); -require "$dir/includes/autoload.inc.php"; -Database::checkConfig(); +require "$dir/includes/autoloader.php"; +Database\Database::checkConfig(); if (isset($_POST['uname'])) { $uname = $_POST['uname']; diff --git a/get.php b/get.php index ea1e6b0d..4fcd938f 100644 --- a/get.php +++ b/get.php @@ -3,13 +3,13 @@ * @Author: prpr * @Date: 2016-02-02 20:56:42 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:38:46 + * @Last Modified time: 2016-03-18 17:47:37 * * All textures requests of legacy link will be handle here. */ $dir = dirname(__FILE__); -require "$dir/includes/autoload.inc.php"; +require "$dir/includes/autoloader.php"; if (isset($_GET['type']) && isset($_GET['uname'])) { $user = new User($_GET['uname']); diff --git a/includes/autoload.inc.php b/includes/autoloader.php similarity index 53% rename from includes/autoload.inc.php rename to includes/autoloader.php index 9fabcc20..d8369918 100644 --- a/includes/autoload.inc.php +++ b/includes/autoloader.php @@ -3,13 +3,15 @@ * @Author: prpr * @Date: 2016-02-02 21:17:59 * @Last Modified by: printempw - * @Last Modified time: 2016-03-12 18:44:26 + * @Last Modified time: 2016-03-18 17:34:35 */ function __autoload($classname) { global $dir; - $filename = "$dir/includes/".$classname.".class.php"; - include_once($filename); + // echo $classname.'
'; + $include_dir = $dir.DIRECTORY_SEPARATOR."includes".DIRECTORY_SEPARATOR."classes".DIRECTORY_SEPARATOR; + $filename = $include_dir.str_replace('\\', DIRECTORY_SEPARATOR, $classname) . '.class.php'; + require_once($filename); } if (!file_exists($dir.'/config.php')) Utils::showErrorPage(-1, '未找到 `config.php`,请确认配置文件是否存在。'); diff --git a/includes/Config.class.php b/includes/classes/Config.class.php similarity index 93% rename from includes/Config.class.php rename to includes/classes/Config.class.php index 14749194..b38a8b76 100644 --- a/includes/Config.class.php +++ b/includes/classes/Config.class.php @@ -3,12 +3,13 @@ * @Author: printempw * @Date: 2016-03-18 14:02:12 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:37:04 + * @Last Modified time: 2016-03-18 17:24:13 */ +use Database\Database; + class Config { - public static function get($key) { $conn = Database::checkConfig(); $sql = "SELECT * FROM ".DB_PREFIX."options WHERE `option_name` = '$key'"; diff --git a/includes/AdaptedDatabase.class.php b/includes/classes/Database/AdaptedDatabase.class.php similarity index 94% rename from includes/AdaptedDatabase.class.php rename to includes/classes/Database/AdaptedDatabase.class.php index ad99d6ed..b28ee091 100644 --- a/includes/AdaptedDatabase.class.php +++ b/includes/classes/Database/AdaptedDatabase.class.php @@ -3,9 +3,16 @@ * @Author: printempw * @Date: 2016-03-18 16:53:55 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 16:55:30 + * @Last Modified time: 2016-03-18 17:33:58 */ +namespace Database; + +use Database\Database; +use Database\EncryptInterface; +use Database\SyncInterface; +use Config; + class AdaptedDatabase extends Database implements EncryptInterface, SyncInterface { protected $table_name; diff --git a/includes/AuthmeDatabase.class.php b/includes/classes/Database/AuthmeDatabase.class.php similarity index 83% rename from includes/AuthmeDatabase.class.php rename to includes/classes/Database/AuthmeDatabase.class.php index 67e70525..822d366f 100644 --- a/includes/AuthmeDatabase.class.php +++ b/includes/classes/Database/AuthmeDatabase.class.php @@ -3,9 +3,13 @@ * @Author: printempw * @Date: 2016-03-13 11:59:32 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 16:55:57 + * @Last Modified time: 2016-03-18 17:33:27 */ +namespace Database; + +use Database\AdaptedDatabase; + class AuthmeDatabase extends AdaptedDatabase { /** diff --git a/includes/CrazyDatabase.class.php b/includes/classes/Database/CrazyDatabase.class.php similarity index 87% rename from includes/CrazyDatabase.class.php rename to includes/classes/Database/CrazyDatabase.class.php index 86c2037c..9846afe4 100644 --- a/includes/CrazyDatabase.class.php +++ b/includes/classes/Database/CrazyDatabase.class.php @@ -3,9 +3,13 @@ * @Author: printempw * @Date: 2016-03-13 12:15:08 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 16:56:29 + * @Last Modified time: 2016-03-18 17:23:25 */ +namespace Database; + +use Database\AdaptedDatabase; + class CrazyDatabase extends AdaptedDatabase { /** diff --git a/includes/Database.class.php b/includes/classes/Database/Database.class.php similarity index 94% rename from includes/Database.class.php rename to includes/classes/Database/Database.class.php index 4cbf9108..18cea673 100644 --- a/includes/Database.class.php +++ b/includes/classes/Database/Database.class.php @@ -3,9 +3,16 @@ * @Author: printempw * @Date: 2016-02-02 21:59:06 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:34:09 + * @Last Modified time: 2016-03-18 17:37:01 */ +namespace Database; + +use Database\EncryptInterface; +use Database\SyncInterface; +use Utils; +use Mysqli; + class Database implements EncryptInterface, SyncInterface { private $connection = null; @@ -24,8 +31,7 @@ class Database implements EncryptInterface, SyncInterface if (!self::checkTableExist($conn)) { } - $dir = dirname(dirname(__FILE__)); - if (!is_dir("$dir/textures/")) { + if (!is_dir(BASE_DIR."/textures/")) { Utils::showErrorPage(-1, "textures 文件夹不存在。请先运行 /admin/install.php 进行安装,或者手动放置一个。"); } return $conn; diff --git a/includes/DiscuzDatabase.class.php b/includes/classes/Database/DiscuzDatabase.class.php similarity index 83% rename from includes/DiscuzDatabase.class.php rename to includes/classes/Database/DiscuzDatabase.class.php index b76d87eb..4867bdbb 100644 --- a/includes/DiscuzDatabase.class.php +++ b/includes/classes/Database/DiscuzDatabase.class.php @@ -3,9 +3,13 @@ * @Author: printempw * @Date: 2016-03-13 14:59:32 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 16:56:46 + * @Last Modified time: 2016-03-18 17:23:38 */ +namespace Database; + +use Database\AdaptedDatabase; + class DiscuzDatabase extends AdaptedDatabase { /** diff --git a/includes/EncryptInterface.class.php b/includes/classes/Database/EncryptInterface.class.php similarity index 86% rename from includes/EncryptInterface.class.php rename to includes/classes/Database/EncryptInterface.class.php index b0c26bf4..cddcf833 100644 --- a/includes/EncryptInterface.class.php +++ b/includes/classes/Database/EncryptInterface.class.php @@ -3,9 +3,11 @@ * @Author: printempw * @Date: 2016-03-13 11:53:47 * @Last Modified by: printempw - * @Last Modified time: 2016-03-13 14:31:29 + * @Last Modified time: 2016-03-18 17:23:08 */ +namespace Database; + interface EncryptInterface { /** diff --git a/includes/SyncInterface.class.php b/includes/classes/Database/SyncInterface.class.php similarity index 84% rename from includes/SyncInterface.class.php rename to includes/classes/Database/SyncInterface.class.php index ba27eb44..c136d010 100644 --- a/includes/SyncInterface.class.php +++ b/includes/classes/Database/SyncInterface.class.php @@ -3,9 +3,11 @@ * @Author: printempw * @Date: 2016-03-13 13:31:28 * @Last Modified by: printempw - * @Last Modified time: 2016-03-13 14:35:37 + * @Last Modified time: 2016-03-18 17:23:33 */ +namespace Database; + interface SyncInterface { /** diff --git a/includes/User.class.php b/includes/classes/User.class.php similarity index 98% rename from includes/User.class.php rename to includes/classes/User.class.php index 1c891bdc..34b99839 100644 --- a/includes/User.class.php +++ b/includes/classes/User.class.php @@ -3,9 +3,11 @@ * @Author: printempw * @Date: 2016-01-16 23:01:33 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 16:45:00 + * @Last Modified time: 2016-03-18 17:31:41 */ +use Database\Database; + class User { public $uname = ""; @@ -18,7 +20,7 @@ class User function __construct($uname) { $this->uname = Utils::convertString($uname); - $class_name = Config::get('data_adapter')."Database"; + $class_name = "Database\\".Config::get('data_adapter')."Database"; $this->db = new $class_name(); if ($this->db->sync($this->uname)) { diff --git a/includes/Utils.class.php b/includes/classes/Utils.class.php similarity index 87% rename from includes/Utils.class.php rename to includes/classes/Utils.class.php index a5126952..f282dc93 100644 --- a/includes/Utils.class.php +++ b/includes/classes/Utils.class.php @@ -3,7 +3,7 @@ * @Author: printempw * @Date: 2016-01-16 23:01:33 * @Last Modified by: printempw - * @Last Modified time: 2016-03-12 18:00:02 + * @Last Modified time: 2016-03-18 17:40:51 */ class Utils @@ -23,8 +23,7 @@ class Utils } public static function showErrorPage($errno = -1, $msg = "Error occured.") { - $dir = dirname(dirname(__FILE__)); - require "$dir/includes/error.tpl.php"; + require BASE_DIR."/includes/templates/error.tpl.php"; die(); } @@ -35,10 +34,9 @@ class Utils * @return string $hash, sha256 hash of file */ public static function upload($file) { - $dir = dirname(dirname(__FILE__)); - move_uploaded_file($file["tmp_name"], "$dir/textures/tmp.png"); - $hash = hash_file('sha256', "$dir/textures/tmp.png"); - rename("$dir/textures/tmp.png", "$dir/textures/".$hash); + move_uploaded_file($file["tmp_name"], BASE_DIR."/textures/tmp.png"); + $hash = hash_file('sha256', BASE_DIR."/textures/tmp.png"); + rename(BASE_DIR."/textures/tmp.png", BASE_DIR."/textures/".$hash); return $hash; } diff --git a/includes/session.inc.php b/includes/session.inc.php index c4daf810..1eb0c907 100644 --- a/includes/session.inc.php +++ b/includes/session.inc.php @@ -2,12 +2,12 @@ /** * @Author: prpr * @Date: 2016-02-06 23:18:49 - * @Last Modified by: prpr - * @Last Modified time: 2016-02-06 23:27:48 + * @Last Modified by: printempw + * @Last Modified time: 2016-03-18 17:46:22 */ session_start(); $dir = dirname(dirname(__FILE__)); -require "$dir/includes/autoload.inc.php"; +require "$dir/includes/autoloader.php"; if(isset($_COOKIE['uname']) && isset($_COOKIE['token'])) { $_SESSION['uname'] = $_COOKIE['uname']; diff --git a/includes/error.tpl.php b/includes/templates/error.tpl.php similarity index 100% rename from includes/error.tpl.php rename to includes/templates/error.tpl.php diff --git a/includes/welcome.inc.php b/includes/templates/welcome.tpl.php similarity index 100% rename from includes/welcome.inc.php rename to includes/templates/welcome.tpl.php diff --git a/index.php b/index.php index b4ebfe02..876426be 100755 --- a/index.php +++ b/index.php @@ -3,12 +3,12 @@ * @Author: printempw * @Date: 2016-01-17 13:55:20 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 15:02:24 + * @Last Modified time: 2016-03-18 17:47:57 */ session_start(); $dir = dirname(__FILE__); -require "$dir/includes/autoload.inc.php"; -Database::checkConfig(); +require "$dir/includes/autoloader.php"; +Database\Database::checkConfig(); // Auto load cookie value to session if (isset($_COOKIE['uname']) && isset($_COOKIE['token'])) { diff --git a/user/index.php b/user/index.php index 0666496f..6d1298a4 100644 --- a/user/index.php +++ b/user/index.php @@ -3,7 +3,7 @@ * @Author: prpr * @Date: 2016-01-21 13:56:40 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:44:02 + * @Last Modified time: 2016-03-18 17:44:39 */ require "../includes/session.inc.php"; ?> @@ -31,7 +31,7 @@ require "../includes/session.inc.php";
  • 个人设置
  • - +
    diff --git a/user/profile.php b/user/profile.php index 879cc4f1..00fc75df 100644 --- a/user/profile.php +++ b/user/profile.php @@ -3,7 +3,7 @@ * @Author: prpr * @Date: 2016-02-03 16:12:45 * @Last Modified by: printempw - * @Last Modified time: 2016-03-18 14:44:12 + * @Last Modified time: 2016-03-18 17:44:50 */ require "../includes/session.inc.php"; ?> @@ -33,7 +33,7 @@ require "../includes/session.inc.php";
  • 皮肤上传
  • - +