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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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;
- }
}