diff --git a/README.md b/README.md new file mode 100644 index 0000000..f983f5a --- /dev/null +++ b/README.md @@ -0,0 +1,106 @@ +ape_blog源码云博客 +=============== + +> 运行环境要求PHP7.1+。 + +## 主要特性 + +### 开源无加密 +源码开源无加密 +### TP6框架 +使用最新的 ThinkPHP 6.0框架开发 +### 标准接口 +标准接口、优越性能、强大兼容性、二次开发更方便 +### 无缝事件机制 +行为扩展更方便,方便二次开发 +### 后台快速生成表单 +后台应用form-builder 无需写页面快速增删改查 +### 强大的后台权限管理 +后台多种角色、多重身份权限管理,权限可以控制到每一步操作 + +## 特别感谢 + +[笔下光年 / Light Year Admin 一个基于Bootstrap v3.3.7的后台HTML模板。](https://gitee.com/yinqi/Light-Year-Admin-Template) + +[xaboy / form-builder PHP表单生成器,使用PHP快速生成现代化的form表单。](https://gitee.com/xaboy/form-builder) + +[cfn / PaiAdmin 前后端开发框架](https://gitee.com/leapy/pai) +## 自动安装 +1. 上传文件到网站根目录 +2. 修改目录权限(linux系统)777 + /public + /runtime +3. 安装好拓展 +4. 配置好域名,在浏览器里打开域名,根据安装向导进行安装 +5. 后台登录 http://域名/admin +## 手动安装 + +1.创建数据库,倒入数据库文件 + +数据库文件目录/public/install/learn.sql + +2.修改数据库连接文件 +配置文件路径/.env + +~~~ +APP_DEBUG = true + +[APP] +DEFAULT_TIMEZONE = Asia/Shanghai + +[DATABASE] +TYPE = mysql +HOSTNAME = 127.0.0.1 #数据库连接地址 +DATABASE = test #数据库名称 +USERNAME = username #数据库登录账号 +PASSWORD = password #数据库登录密码 +HOSTPORT = 3306 #数据库端口 +CHARSET = utf8 +DEBUG = true + +[LANG] +default_lang = zh-cn +~~~ +3.安装php拓展 + +~~~ +redis +~~~ + +4.创建目录并修改目录权限(linux系统)777 + +~~~ +mkdir public/upload +mkdir runtime +chmod -R 777 public/upload +chmod -R 777 runtime +~~~ + +5.后台登录: +http://域名/admin + +默认账号:admin 密码:123456 + +## 文档 + +[TP6开发手册](https://www.kancloud.cn/manual/thinkphp6_0/content) +[FormBuilder](http://php.form-create.com/) +[Light Year Admin](http://www.itshubao.com/doc-lyear/lyear.html) + +## 官网体验 + +[源码云博客](https://blog.apecloud.cn/) + +## 联系我 +邮箱:1099438829@qq.com +QQ:1099438829 + +## 版权信息 + +Pai-admin遵循Apache2开源协议发布,并提供免费使用。 + +本项目包含的第三方源码和二进制文件之版权信息另行标注。 + +版权所有Copyright © 2019-2025 by 木子的忧伤 (https://www.apecloud.cn) + +All rights reserved。 diff --git a/app/index/controller/Article.php b/app/index/controller/Article.php index 0f94987..5d5fe05 100644 --- a/app/index/controller/Article.php +++ b/app/index/controller/Article.php @@ -114,14 +114,13 @@ class Article extends Base */ public function detail() { - $id = input('id/d'); - + $id = input('id'); if (!$id) { $this->error('参数错误!'); } //获取该文章 $documentModel = new Document(); - $article = $documentModel->where('status', 1)->where('id', $id)->find(); + $article = $documentModel->where('status', 1)->where('id|alias', $id)->find(); if (!$article) { $this->error('文章不存在或已删除!'); } diff --git a/public/install/ape_blog.sql b/public/install/ape_blog.sql index 1ec0e8f..deb1abf 100644 --- a/public/install/ape_blog.sql +++ b/public/install/ape_blog.sql @@ -11,7 +11,7 @@ Target Server Version : 50726 File Encoding : 65001 - Date: 23/01/2022 22:22:06 + Date: 08/02/2022 22:31:04 */ SET NAMES utf8mb4; @@ -125,15 +125,11 @@ CREATE TABLE `ape_admin_log` ( `user_agent` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'User-Agent', `create_time` int(10) NOT NULL DEFAULT 0 COMMENT '操作时间', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of ape_admin_log -- ---------------------------- -INSERT INTO `ape_admin_log` VALUES (1, 1, 'admin', 'admin', 'index', 'main', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69', 1642947456); -INSERT INTO `ape_admin_log` VALUES (2, 1, 'admin', 'admin', 'friendlink', 'index', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69', 1642947458); -INSERT INTO `ape_admin_log` VALUES (3, 1, 'admin', 'admin', 'admin_auth', 'index', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69', 1642947612); -INSERT INTO `ape_admin_log` VALUES (4, 1, 'admin', 'admin', 'admin_auth', 'index', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69', 1642947645); -- ---------------------------- -- Table structure for ape_admin_notify @@ -271,14 +267,11 @@ CREATE TABLE `ape_comment` ( `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '评论时间', `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '评论时间', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论表' ROW_FORMAT = COMPACT; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论表' ROW_FORMAT = COMPACT; -- ---------------------------- -- Records of ape_comment -- ---------------------------- -INSERT INTO `ape_comment` VALUES (1, '看看', '123@qq.com', 'www.baidu.com', '123213', 0, '', 0, 1, 0, 1642931109, 1642931109); -INSERT INTO `ape_comment` VALUES (2, '看看', '123@qq.com', 'www.baidu.com', '驱蚊驱蚊[f=youling]', 0, '', 0, 1, 1, 1642931129, 1642931129); -INSERT INTO `ape_comment` VALUES (3, '看看', '123@qq.com', 'www.baidu.com', '[f=yiwen][f=yinxian]', 0, '', 2, 1, 1, 1642945595, 1642945595); -- ---------------------------- -- Table structure for ape_document @@ -286,6 +279,7 @@ INSERT INTO `ape_comment` VALUES (3, '看看', '123@qq.com', 'www.baidu.com', '[ DROP TABLE IF EXISTS `ape_document`; CREATE TABLE `ape_document` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `alias` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '别名', `uid` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户ID', `author` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '作者', `title` char(80) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '标题', @@ -310,13 +304,14 @@ CREATE TABLE `ape_document` ( `password` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '文章密码', PRIMARY KEY (`id`) USING BTREE, INDEX `idx_category_status`(`category_id`, `status`) USING BTREE, - INDEX `idx_status_type_pid`(`status`, `uid`) USING BTREE + INDEX `idx_status_type_pid`(`status`, `uid`) USING BTREE, + UNIQUE INDEX `alias`(`alias`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文档模型基础表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of ape_document -- ---------------------------- -INSERT INTO `ape_document` VALUES (1, 1, '超级管理员', '关于源码云博客', 1, '/uploads/images/20220113/0114fc5ff6a1f9c541dcbc8b99b1c5f2.png', 'article', '', 1, 1, 1, '', 1, 41, '源码云,博客,源码云博客', '关于源码云博客', '源码云博客,源码云,博客,关于', '源码云博客最好用的博客程序', 99, 1642089660, 1642089660, 1, ''); +INSERT INTO `ape_document` VALUES (1, 'about', 1, '超级管理员', '关于源码云博客', 1, '/uploads/images/20220113/0114fc5ff6a1f9c541dcbc8b99b1c5f2.png', 'article', '', 1, 1, 1, '', 1, 61, '源码云,博客,源码云博客', '关于源码云博客', '源码云博客,源码云,博客,关于', '源码云博客最好用的博客程序', 99, 1642089660, 1642089660, 1, ''); -- ---------------------------- -- Table structure for ape_document_article @@ -360,7 +355,7 @@ CREATE TABLE `ape_document_category` ( -- ---------------------------- -- Records of ape_document_category -- ---------------------------- -INSERT INTO `ape_document_category` VALUES (1, '关于小站', '', '', 0, 0, 99, '关于小站', '关于小站,源码云,源码云博客,关于源码云博客', '源码云博客,源码云博客网站', 1, 'list_default.html', '', 1, 0, 1642089484); +INSERT INTO `ape_document_category` VALUES (1, '关于小站', '', '', 0, 0, 99, '关于小站', '关于小站,源码云,源码云博客,关于源码云博客', '源码云博客,源码云博客网站', 1, 'list_default.html', '', 11, 0, 1642089484); -- ---------------------------- -- Table structure for ape_document_category_content @@ -500,7 +495,7 @@ CREATE TABLE `ape_system_config` ( `create_time` int(10) NOT NULL DEFAULT 0 COMMENT '添加时间', `update_time` int(10) NOT NULL DEFAULT 0 COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 34 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统配置表' ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统配置表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of ape_system_config diff --git a/public/template/default/pc/article/article.html b/public/template/default/pc/article/article.html index 1e66900..b1e6e7b 100644 --- a/public/template/default/pc/article/article.html +++ b/public/template/default/pc/article/article.html @@ -306,7 +306,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/article/search.html b/public/template/default/pc/article/search.html index 10cf1f8..56465ef 100644 --- a/public/template/default/pc/article/search.html +++ b/public/template/default/pc/article/search.html @@ -96,7 +96,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/article/tag.html b/public/template/default/pc/article/tag.html index 891e728..4be05ec 100644 --- a/public/template/default/pc/article/tag.html +++ b/public/template/default/pc/article/tag.html @@ -96,7 +96,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/article/user.html b/public/template/default/pc/article/user.html index b88d46a..2652cd7 100644 --- a/public/template/default/pc/article/user.html +++ b/public/template/default/pc/article/user.html @@ -96,7 +96,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/category/list_default.html b/public/template/default/pc/category/list_default.html index 319b286..9a09fb4 100644 --- a/public/template/default/pc/category/list_default.html +++ b/public/template/default/pc/category/list_default.html @@ -97,7 +97,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/index/applylink.html b/public/template/default/pc/index/applylink.html index 1150398..bcc5644 100644 --- a/public/template/default/pc/index/applylink.html +++ b/public/template/default/pc/index/applylink.html @@ -164,7 +164,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/index/index.html b/public/template/default/pc/index/index.html index 1863b03..574358f 100644 --- a/public/template/default/pc/index/index.html +++ b/public/template/default/pc/index/index.html @@ -173,7 +173,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/index/msg.html b/public/template/default/pc/index/msg.html index 8523df8..3b885b3 100644 --- a/public/template/default/pc/index/msg.html +++ b/public/template/default/pc/index/msg.html @@ -157,7 +157,7 @@
{$field['create_time']}
- {:cn_substr($field['category_title'],5)} + {:cn_substr($field['category_title'],5)}
diff --git a/public/template/default/pc/public/footer.html b/public/template/default/pc/public/footer.html index 79f62bf..d0a5d66 100644 --- a/public/template/default/pc/public/footer.html +++ b/public/template/default/pc/public/footer.html @@ -23,12 +23,12 @@ diff --git a/vendor/bin/var-dump-server b/vendor/bin/var-dump-server index 4b749cc..527f3ed 100644 --- a/vendor/bin/var-dump-server +++ b/vendor/bin/var-dump-server @@ -4,21 +4,114 @@ /** * Proxy PHP file generated by Composer * - * This file includes the referenced bin path (../symfony/var-dumper/Resources/bin/var-dump-server) using eval to remove the shebang if present + * This file includes the referenced bin path (../symfony/var-dumper/Resources/bin/var-dump-server) + * using a stream wrapper to prevent the shebang from being output on PHP<8 * * @generated */ -$binPath = realpath(__DIR__ . "/" . '../symfony/var-dumper/Resources/bin/var-dump-server'); -$contents = file_get_contents($binPath); -$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced); -if ($replaced) { - $contents = strtr($contents, array( - '__FILE__' => var_export($binPath, true), - '__DIR__' => var_export(dirname($binPath), true), - )); +namespace Composer; - eval($contents); - exit(0); +$GLOBALS['_composer_bin_dir'] = __DIR__; +$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php'; + +if (PHP_VERSION_ID < 80000) { + if (!class_exists('Composer\BinProxyWrapper')) { + /** + * @internal + */ + final class BinProxyWrapper + { + private $handle; + private $position; + private $realpath; + + public function stream_open($path, $mode, $options, &$opened_path) + { + // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution + $opened_path = substr($path, 17); + $this->realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server'); + exit(0); + } } -include $binPath; + +include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server'; diff --git a/vendor/bin/var-dump-server.bat b/vendor/bin/var-dump-server.bat index 46836b5..c3c7476 100644 --- a/vendor/bin/var-dump-server.bat +++ b/vendor/bin/var-dump-server.bat @@ -1,4 +1,5 @@ @ECHO OFF setlocal DISABLEDELAYEDEXPANSION -SET BIN_TARGET=%~dp0/../symfony/var-dumper/Resources/bin/var-dump-server +SET BIN_TARGET=%~dp0/var-dump-server +SET COMPOSER_BIN_DIR=%~dp0 php "%BIN_TARGET%" %* diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 0cd6055..afef3fa 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -149,7 +149,7 @@ class ClassLoader /** * @return string[] Array of classname => path - * @psalm-var array + * @psalm-return array */ public function getClassMap() { diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 7c5502c..d50e0c9 100644 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -24,8 +24,21 @@ use Composer\Semver\VersionParser; */ class InstalledVersions { + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null + */ private static $installed; + + /** + * @var bool|null + */ private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ private static $installedByVendor = array(); /** diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 8b0d727..0ed4359 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -7,8 +7,8 @@ $baseDir = dirname($vendorDir); return array( '9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php', - 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', + 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', '35fab96057f1bf5e7aba31a8a6d5fdde' => $vendorDir . '/topthink/think-orm/stubs/load_stubs.php', '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index cadfe18..1e175f7 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -9,7 +9,7 @@ return array( 'think\\view\\driver\\' => array($vendorDir . '/topthink/think-view/src'), 'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), 'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'), - 'think\\' => array($vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-template/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/framework/src/think'), + 'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src'), 'app\\' => array($baseDir . '/app'), 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 603ba7c..b068c38 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -22,8 +22,6 @@ class ComposerAutoloaderInit4b57298e8d0e895486f3307a354a7e1a return self::$loader; } - require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit4b57298e8d0e895486f3307a354a7e1a', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); spl_autoload_unregister(array('ComposerAutoloaderInit4b57298e8d0e895486f3307a354a7e1a', 'loadClassLoader')); @@ -65,11 +63,16 @@ class ComposerAutoloaderInit4b57298e8d0e895486f3307a354a7e1a } } +/** + * @param string $fileIdentifier + * @param string $file + * @return void + */ function composerRequire4b57298e8d0e895486f3307a354a7e1a($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; } } diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d102379..1194f29 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -8,8 +8,8 @@ class ComposerStaticInit4b57298e8d0e895486f3307a354a7e1a { public static $files = array ( '9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php', - 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', + 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', '35fab96057f1bf5e7aba31a8a6d5fdde' => __DIR__ . '/..' . '/topthink/think-orm/stubs/load_stubs.php', '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', @@ -79,10 +79,10 @@ class ComposerStaticInit4b57298e8d0e895486f3307a354a7e1a ), 'think\\' => array ( - 0 => __DIR__ . '/..' . '/topthink/think-helper/src', - 1 => __DIR__ . '/..' . '/topthink/think-template/src', + 0 => __DIR__ . '/..' . '/topthink/framework/src/think', + 1 => __DIR__ . '/..' . '/topthink/think-helper/src', 2 => __DIR__ . '/..' . '/topthink/think-orm/src', - 3 => __DIR__ . '/..' . '/topthink/framework/src/think', + 3 => __DIR__ . '/..' . '/topthink/think-template/src', ), 'app\\' => array ( diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 1669500..b7fb55c 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -541,17 +541,17 @@ }, { "name": "psr/container", - "version": "1.1.1", - "version_normalized": "1.1.1.0", + "version": "1.1.2", + "version_normalized": "1.1.2.0", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "", "mirrors": [ { @@ -561,9 +561,9 @@ ] }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, - "time": "2021-03-05T17:36:06+00:00", + "time": "2021-11-05T16:50:12+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -592,7 +592,7 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, "install-path": "../psr/container" }, @@ -914,17 +914,17 @@ }, { "name": "symfony/http-foundation", - "version": "v5.4.2", - "version_normalized": "5.4.2.0", + "version": "v5.4.3", + "version_normalized": "5.4.3.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ce952af52877eaf3eab5d0c08cc0ea865ed37313" + "reference": "ef409ff341a565a3663157d4324536746d49a0c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce952af52877eaf3eab5d0c08cc0ea865ed37313", - "reference": "ce952af52877eaf3eab5d0c08cc0ea865ed37313", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ef409ff341a565a3663157d4324536746d49a0c7", + "reference": "ef409ff341a565a3663157d4324536746d49a0c7", "shasum": "", "mirrors": [ { @@ -948,7 +948,7 @@ "suggest": { "symfony/mime": "To use the file extension guesser" }, - "time": "2021-12-28T17:15:56+00:00", + "time": "2022-01-02T09:53:40+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -976,7 +976,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.2" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.3" }, "funding": [ { @@ -1265,17 +1265,17 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.36", - "version_normalized": "4.4.36.0", + "version": "v4.4.37", + "version_normalized": "4.4.37.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "02685c62fcbc4262235cc72a54fbd45ab719ce3c" + "reference": "e74eee4ec02de71db3d60151aa5b203c990556df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/02685c62fcbc4262235cc72a54fbd45ab719ce3c", - "reference": "02685c62fcbc4262235cc72a54fbd45ab719ce3c", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e74eee4ec02de71db3d60151aa5b203c990556df", + "reference": "e74eee4ec02de71db3d60151aa5b203c990556df", "shasum": "", "mirrors": [ { @@ -1305,7 +1305,7 @@ "ext-intl": "To show region name in time zone dump", "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, - "time": "2021-12-29T09:28:53+00:00", + "time": "2022-01-02T09:41:36+00:00", "bin": [ "Resources/bin/var-dump-server" ], @@ -1343,7 +1343,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.36" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.37" }, "funding": [ { @@ -1439,17 +1439,17 @@ }, { "name": "topthink/think-captcha", - "version": "v3.0.3", - "version_normalized": "3.0.3.0", + "version": "v3.0.4", + "version_normalized": "3.0.4.0", "source": { "type": "git", "url": "https://github.com/top-think/think-captcha.git", - "reference": "1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55" + "reference": "db5be361d3cd664d236fb95d5dffe93a117283ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/think-captcha/zipball/1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55", - "reference": "1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55", + "url": "https://api.github.com/repos/top-think/think-captcha/zipball/db5be361d3cd664d236fb95d5dffe93a117283ad", + "reference": "db5be361d3cd664d236fb95d5dffe93a117283ad", "shasum": "", "mirrors": [ { @@ -1461,7 +1461,7 @@ "require": { "topthink/framework": "^6.0.0" }, - "time": "2020-05-19T10:55:45+00:00", + "time": "2022-01-07T06:34:19+00:00", "type": "library", "extra": { "think": { @@ -1495,7 +1495,7 @@ "description": "captcha package for thinkphp", "support": { "issues": "https://github.com/top-think/think-captcha/issues", - "source": "https://github.com/top-think/think-captcha/tree/v3.0.3" + "source": "https://github.com/top-think/think-captcha/tree/v3.0.4" }, "install-path": "../topthink/think-captcha" }, @@ -1613,17 +1613,17 @@ }, { "name": "topthink/think-orm", - "version": "v2.0.51", - "version_normalized": "2.0.51.0", + "version": "v2.0.52", + "version_normalized": "2.0.52.0", "source": { "type": "git", "url": "https://github.com/top-think/think-orm.git", - "reference": "149d266acdc4b2f07c6a94f1733b6b97d340e0e2" + "reference": "407a60658f37fc57422ab95a9922c6f69af90f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/think-orm/zipball/149d266acdc4b2f07c6a94f1733b6b97d340e0e2", - "reference": "149d266acdc4b2f07c6a94f1733b6b97d340e0e2", + "url": "https://api.github.com/repos/top-think/think-orm/zipball/407a60658f37fc57422ab95a9922c6f69af90f46", + "reference": "407a60658f37fc57422ab95a9922c6f69af90f46", "shasum": "", "mirrors": [ { @@ -1643,7 +1643,7 @@ "require-dev": { "phpunit/phpunit": "^7|^8|^9.5" }, - "time": "2022-01-21T06:25:25+00:00", + "time": "2022-01-25T06:00:05+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1671,7 +1671,7 @@ ], "support": { "issues": "https://github.com/top-think/think-orm/issues", - "source": "https://github.com/top-think/think-orm/tree/v2.0.51" + "source": "https://github.com/top-think/think-orm/tree/v2.0.52" }, "install-path": "../topthink/think-orm" }, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 5027af8..fe05d79 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '0c450018f0159a262d26966718fc8891dd645cf3', + 'reference' => 'aff980a7927e1517e120f879d90e76f2867f02b6', 'name' => 'topthink/think', 'dev' => true, ), @@ -74,12 +74,12 @@ 'dev_requirement' => false, ), 'psr/container' => array( - 'pretty_version' => '1.1.1', - 'version' => '1.1.1.0', + 'pretty_version' => '1.1.2', + 'version' => '1.1.2.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), - 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', + 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'dev_requirement' => false, ), 'psr/http-message' => array( @@ -128,12 +128,12 @@ 'dev_requirement' => false, ), 'symfony/http-foundation' => array( - 'pretty_version' => 'v5.4.2', - 'version' => '5.4.2.0', + 'pretty_version' => 'v5.4.3', + 'version' => '5.4.3.0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-foundation', 'aliases' => array(), - 'reference' => 'ce952af52877eaf3eab5d0c08cc0ea865ed37313', + 'reference' => 'ef409ff341a565a3663157d4324536746d49a0c7', 'dev_requirement' => false, ), 'symfony/polyfill-mbstring' => array( @@ -164,12 +164,12 @@ 'dev_requirement' => false, ), 'symfony/var-dumper' => array( - 'pretty_version' => 'v4.4.36', - 'version' => '4.4.36.0', + 'pretty_version' => 'v4.4.37', + 'version' => '4.4.37.0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/var-dumper', 'aliases' => array(), - 'reference' => '02685c62fcbc4262235cc72a54fbd45ab719ce3c', + 'reference' => 'e74eee4ec02de71db3d60151aa5b203c990556df', 'dev_requirement' => true, ), 'topthink/framework' => array( @@ -187,16 +187,16 @@ 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '0c450018f0159a262d26966718fc8891dd645cf3', + 'reference' => 'aff980a7927e1517e120f879d90e76f2867f02b6', 'dev_requirement' => false, ), 'topthink/think-captcha' => array( - 'pretty_version' => 'v3.0.3', - 'version' => '3.0.3.0', + 'pretty_version' => 'v3.0.4', + 'version' => '3.0.4.0', 'type' => 'library', 'install_path' => __DIR__ . '/../topthink/think-captcha', 'aliases' => array(), - 'reference' => '1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55', + 'reference' => 'db5be361d3cd664d236fb95d5dffe93a117283ad', 'dev_requirement' => false, ), 'topthink/think-helper' => array( @@ -218,12 +218,12 @@ 'dev_requirement' => false, ), 'topthink/think-orm' => array( - 'pretty_version' => 'v2.0.51', - 'version' => '2.0.51.0', + 'pretty_version' => 'v2.0.52', + 'version' => '2.0.52.0', 'type' => 'library', 'install_path' => __DIR__ . '/../topthink/think-orm', 'aliases' => array(), - 'reference' => '149d266acdc4b2f07c6a94f1733b6b97d340e0e2', + 'reference' => '407a60658f37fc57422ab95a9922c6f69af90f46', 'dev_requirement' => false, ), 'topthink/think-template' => array( diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php deleted file mode 100644 index a8b98d5..0000000 --- a/vendor/composer/platform_check.php +++ /dev/null @@ -1,26 +0,0 @@ -= 70205)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.'; -} - -if ($issues) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); - } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; - } - } - trigger_error( - 'Composer detected issues in your platform: ' . implode(' ', $issues), - E_USER_ERROR - ); -} diff --git a/vendor/psr/container/composer.json b/vendor/psr/container/composer.json index 3797a25..017f41e 100644 --- a/vendor/psr/container/composer.json +++ b/vendor/psr/container/composer.json @@ -12,7 +12,7 @@ } ], "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "autoload": { "psr-4": { diff --git a/vendor/psr/container/src/ContainerExceptionInterface.php b/vendor/psr/container/src/ContainerExceptionInterface.php index cf10b8b..0f213f2 100644 --- a/vendor/psr/container/src/ContainerExceptionInterface.php +++ b/vendor/psr/container/src/ContainerExceptionInterface.php @@ -2,9 +2,11 @@ namespace Psr\Container; +use Throwable; + /** * Base interface representing a generic exception in a container. */ -interface ContainerExceptionInterface +interface ContainerExceptionInterface extends Throwable { } diff --git a/vendor/services.php b/vendor/services.php index 9936034..f03e27c 100644 --- a/vendor/services.php +++ b/vendor/services.php @@ -1,5 +1,5 @@ 'think\\captcha\\CaptchaService', diff --git a/vendor/symfony/http-foundation/LICENSE b/vendor/symfony/http-foundation/LICENSE index 9ff2d0d..88bf75b 100644 --- a/vendor/symfony/http-foundation/LICENSE +++ b/vendor/symfony/http-foundation/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-2022 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/var-dumper/LICENSE b/vendor/symfony/var-dumper/LICENSE index c1f0aac..a843ec1 100644 --- a/vendor/symfony/var-dumper/LICENSE +++ b/vendor/symfony/var-dumper/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2021 Fabien Potencier +Copyright (c) 2014-2022 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/topthink/think-captcha/src/Captcha.php b/vendor/topthink/think-captcha/src/Captcha.php index 0789087..83195f1 100644 --- a/vendor/topthink/think-captcha/src/Captcha.php +++ b/vendor/topthink/think-captcha/src/Captcha.php @@ -178,7 +178,7 @@ class Captcha // 图片高(px) $this->imageH || $this->imageH = $this->fontSize * 2.5; // 建立一幅 $this->imageW x $this->imageH 的图像 - $this->im = imagecreate($this->imageW, $this->imageH); + $this->im = imagecreate((int) $this->imageW, (int) $this->imageH); // 设置背景 imagecolorallocate($this->im, $this->bg[0], $this->bg[1], $this->bg[2]); diff --git a/vendor/topthink/think-orm/src/db/Raw.php b/vendor/topthink/think-orm/src/db/Raw.php index 833fbf0..b956ff6 100644 --- a/vendor/topthink/think-orm/src/db/Raw.php +++ b/vendor/topthink/think-orm/src/db/Raw.php @@ -64,8 +64,4 @@ class Raw return $this->bind; } - public function __toString() - { - return (string) $this->value; - } }