wesmiler 6 tahun lalu
induk
melakukan
d6e81ae1fc
11 mengubah file dengan 1035 tambahan dan 0 penghapusan
  1. 2 0
      .dockerignore
  2. 11 0
      .gitignore
  3. 2 0
      CONTRIBUTING.md
  4. 40 0
      Dockerfile
  5. 21 0
      LICENSE
  6. 228 0
      README.md
  7. 38 0
      composer.json
  8. 627 0
      composer.lock
  9. 29 0
      docker-compose.yml
  10. 36 0
      think
  11. 1 0
      version

+ 2 - 0
.dockerignore

@@ -0,0 +1,2 @@
+# Created by .ignore support plugin (hsz.mobi)
+.git*

+ 11 - 0
.gitignore

@@ -0,0 +1,11 @@
+.buildpath
+.DS_Store
+.project
+.settings
+.idea
+.git
+/build
+/public/assets/dist
+/node_modules
+Vagrantfile
+.vagrant

+ 2 - 0
CONTRIBUTING.md

@@ -0,0 +1,2 @@
+如何贡献我的源代码
+===

+ 40 - 0
Dockerfile

@@ -0,0 +1,40 @@
+FROM php:7.1-apache
+
+MAINTAINER jayknoxqu@gmail.com
+
+#设置容器时区
+ENV TZ Asia/Shanghai
+
+#设置程序入口
+ENV APACHE_DOCUMENT_ROOT /var/www/html/public
+
+RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone \
+    && sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf \
+    && sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf \
+    #添加阿里云的镜像源
+    && mv /etc/apt/sources.list /etc/apt/sources.list.bak \
+    && echo "deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib" >/etc/apt/sources.list \
+    && echo "deb http://mirrors.aliyun.com/debian-security stretch/updates main" >>/etc/apt/sources.list \
+    && echo "deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib" >>/etc/apt/sources.list \
+    && echo "deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib" >>/etc/apt/sources.list \
+    #安装程序依赖库
+    && apt-get update && apt-get install -y \
+              libfreetype6-dev \
+              libjpeg62-turbo-dev \
+              libpng-dev \
+    #安装 PHP 依赖
+    && docker-php-ext-install pdo_mysql \
+    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
+    && docker-php-ext-install -j$(nproc) gd \
+    #删除包缓存中的所有包
+    && apt-get clean \
+    && apt-get autoclean \
+    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+
+#复制代码到PHP容器
+COPY . /var/www/html
+
+# 开启URL重写 并且 添加目录权限
+RUN a2enmod rewrite \
+    && chmod -R 0755 /var/www/html \
+    && chown -R www-data:www-data /var/www/html

+ 21 - 0
LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2013-present ThinkCMF (https://www.thinkcmf.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 228 - 0
README.md

@@ -0,0 +1,228 @@
+ThinkCMF 5.1.3 让你更自由地飞
+===============
+
+### 系列讲座
+https://www.thinkcmf.com/college.html
+
+### ThinkCMF5.1主要特性
+* 更改框架协议为`MIT`,让你更自由地飞
+* 基于`ThinkPHP 5.1`重构,但核心代码兼容5.0版本,保证老用户最小升级成本
+* 增加对`swoole`支持,同时支持`swoole`协程和全同步模式
+* 重新规范目录结构,更贴心
+* CMF核心库及应用使用`composer`加载
+* 合并API到框架核心
+* 更规范的代码,遵循`PSR-2`命名规范和`PSR-4`自动加载规范
+* 支持 `composer` 管理第三方库
+* 核心化:独立核心代码包
+* 应用化:开发者以应用的形式增加项目模模块
+* 插件化:更强的插件机制,开发者以插件形式扩展功能
+* 模板化:前台可视化设计
+* 支持URL美化功能,支持别名设置,更简单
+* 独立的回收站功能,可以管理所有应用临时删除的数据
+* 统一的资源管理,相同文件只保存一份
+* 注解式的后台菜单管理功能,方便开发者代码管理后台菜单
+* 插件同样支持注解式的后台菜单管理功能
+* 文件存储插件化,默认支持七牛文件存储插件
+* 模板制作标签化,内置多个cmf标签,方便小白用户
+* 更人性化的导航标签,可以随意定制 html 结构
+* 后台首页插件化,用户可以定制的网站后台首页
+
+### 开发手册
+http://www.kancloud.cn/thinkcmf/doc5_1
+
+### Git仓库
+
+1. GitHub:https://github.com/thinkcmf/thinkcmf 主要仓库
+2. 码云:https://gitee.com/thinkcmf/ThinkCMF 中国镜像
+
+### 演示仓库
+此仓库会放官方的一些演示应用,插件,模板,API等 
+1. https://github.com/thinkcmf/demos 主要仓库
+2. https://gitee.com/thinkcmf/demos 中国镜像
+
+### 环境推荐
+> php7.1
+
+> mysql 5.6+
+
+> 打开rewrite
+
+
+### 最低环境要求
+> php5.6+
+
+> mysql 5.5+ (mysql5.1安装时选择utf8编码,不支持表情符)
+
+> 打开rewrite
+
+
+### 运行环境配置教程
+https://www.thinkcmf.com/topic/1502.html
+
+
+
+代码已经加入自动安装程序,如果你在安装中有任何问题请提交 issue!
+
+1. public目录做为网站根目录,入口文件在 public/index.php
+2. 配置好网站,请访问http://你的域名
+
+enjoy your cmf~!
+
+### 系统更新
+如果您是已经安装过ThinkCMF的用户,请查看 update 目录下的 sql 升级文件,根据自己的下载的程序版本进行更新
+
+### 完整版目录结构
+~~~
+thinkcmf  根目录
+├─api                     api目录
+│  ├─demo                 演示应用api目录
+│  │  ├─controller        控制器目录
+│  │  ├─model             模型目录
+│  │  └─ ...              更多类库目录
+├─app                     应用目录
+│  ├─demo                 演示应用目录
+│  │  ├─controller        控制器目录
+│  │  ├─model             模型目录
+│  │  └─ ...              更多类库目录
+│  ├─ ...                 更多应用
+│  ├─app.php              应用(公共)配置文件[可选]
+│  ├─command.php          命令行工具配置文件[可选]
+│  ├─common.php           应用公共(函数)文件[可选]
+│  ├─database.php         数据库配置文件[可选]
+│  ├─tags.php             应用行为扩展定义文件[可选]
+├─data                    数据目录(可写)
+│  ├─config               动态配置目录(可写)
+│  ├─route                动态路由目录(可写)
+│  ├─runtime              应用的运行时目录(可写)
+│  └─ ...                 更多
+├─public                  WEB 部署目录(对外访问目录)
+│  ├─plugins              插件目录
+│  ├─static               官方静态资源存放目录(css,js,image),勿放自己项目文件
+│  ├─themes               前后台主题目录
+│  │  ├─admin_simpleboot3 后台默认主题
+│  │  └─default           前台默认主题
+│  ├─upload               文件上传目录
+│  ├─api.php              API入口
+│  ├─index.php            入口文件
+│  ├─robots.txt           爬虫协议文件
+│  ├─router.php           快速测试文件
+│  └─.htaccess            apache重写文件
+├─extend                  扩展类库目录[可选]
+├─vendor                  第三方类库目录(Composer)
+│  ├─thinkphp             ThinkPHP目录
+│  └─...             
+├─composer.json           composer 定义文件
+├─LICENSE                 授权说明文件
+├─README.md               README 文件
+├─think                   命令行入口文件
+~~~
+
+### QQ群:
+`ThinkCMF 官方交流群`:316669417  
+   
+`ThinkCMF 高级交流群`:100828313 (付费)  
+高级群专属权益:  
+第一波:两个后台风格(ThinkCMF官网风格后台主题,蓝色风格后台主题)  
+第二波:ThinkCMF5完全开发手册离线版(PDF,EPUB,MOBI格式)  
+更多专属权益正在路上...
+
+`ThinkCMF 铲屎官交流群`:415136742 (生活娱乐,为有喵的猿人准备)
+
+### 话题专区
+http://www.thinkcmf.com/topic/index/index/cat/11.html
+
+### 反馈问题
+https://github.com/thinkcmf/thinkcmf/issues
+
+### 更新日志
+#### 5.1.3
+* 增加`CMF_DATA`常量(注意升级)
+* 增加插件路由功能
+* 增加插件URL美化功能
+* 修复app_init钩子引起的命令行报错
+* 修复API中文件url转化错误
+
+#### 5.1.2
+[核心]
+* 升级tp到`5.1.37`
+* 优化`slides,noslides`标签
+* 修复头像地址获取函数
+* 优化上传类支持API文件上传
+* 封装后台菜单,应用钩子,用户行为导入
+* 增加应用自动安装
+* 优化后台百度地图链接支持https
+
+[API]
+* 优化文件上传,支持云存储
+* 修复积分日志接口数据返回错误
+* 修复钩子不加载问题
+* 修复API跨域报错问题
+
+
+#### 5.1.1
+[核心]
+* `composer.json` extra 增加`think-config`配置
+* 修复API UserLikeModel继承错误类
+* 优化后台菜单 url 生成
+* 增加Linux下全新安装时data目录不可写提示
+* 修复插件模板常量`__ROOT__`不替换
+* 增加`swoole`扩展钩子检测
+* 修复插件API基类报错#577
+* 优化应用初始化流程
+* 优化行为加载流程
+
+[swoole]
+* 增加`swoole_server_start`,`swoole_worker_start`,`swoole_websocket_on_open`,`swoole_websocket_on_close`钩子
+* 增加`WebSocket`独立运行命令
+* 增加`WebSocket onOpen`回调
+* 修复`WebSocket`事件引起的数据库执行报错
+* 修复`WebSocket`发送消息未判断是否为`WebSocket`连接
+* 增加`worker`进程启动时自动初始化所有模块
+
+
+
+#### 5.1.0
+[核心]
+* 更改框架协议为`MIT`,让你更自由地飞
+* 升级`TP`到`5.1.35`
+* 独立安装应用为`composer`包
+* 移除portal应用,请到`https://github.com/thinkcmf/demos`下载
+* 移除`simpleboot3`模板,请到`https://github.com/thinkcmf/demos`下载
+* 移除`phpoffice/phpspreadsheet`,`phpoffice/phpexcel`,`dompdf/dompdf`第三方库,请自行安装
+* 移动`qiniu/php-sdk`库到七牛插件
+* `extend`目录改为可选,开发者自行添加,核心不再包含此目录
+* 增加`demo`应用,方便开发者学习
+* 增加插件`@adminMenuRoot`注解支持
+* 增加`app,api和插件`composer第三方库支持
+* 增加后台模板动态设置功能
+* 使用`composer classmap`做相关类的映射
+* 更改所有`thinkcmf`包版本号依赖
+* 优化清除缓存,清除opcache缓存
+* 优化`cmf_set_dynamic_config`兼容5.0和5.1
+* 升级`PHPMailer`使用`PHPMailer 6.0`(注意类的引入变化)
+* 修复路由是否存在检测问题
+* 修复url美化由于后台权限设置可能引起的漏洞(漏洞编号CVE-2019-6713 感谢topsec(zhan_ran)的及时反馈)
+* 修复子导航标签报错
+* 修复数据库对象实例化不当导致的问题
+* 修复`BaseController`排序批量更新
+* 修复新建管理员登录时报错
+* 取消`THINKCMF_VERSION`常量,请使用`cmf_version()`
+* 取消`PLUGINS_PATH`常量,请使用`WEB_ROOT.'plugins/`
+
+[swoole]
+* 增加`websocket`演示
+* 优化`swoole`配置初始化
+* 优化`swoole`下内容输出
+* 更改默认缓存大小为128M
+* 修复`swoole`如果控制器返回内容为空报错问题
+* 修复`swoole`下核心包路由注册位置
+* 修复`swoole`下后台风格无法设置
+
+#### 5.1.0-beta
+[核心]
+* 升级`ThinkCMF 5.0`到`ThinkPHP 5.1`
+
+
+
+
+

+ 38 - 0
composer.json

@@ -0,0 +1,38 @@
+{
+    "name": "thinkcmf/thinkcmf",
+    "description": "ThinkCMF based on ThinkPHP 5.1 , it is a free and open source Content Management Framework(CMF)",
+    "type": "project",
+    "keywords": [
+        "cmf",
+        "thinkcmf",
+        "framework",
+        "thinkphp",
+        "ORM"
+    ],
+    "homepage": "http://www.thinkcmf.com/",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "thinkcmf",
+            "email": "catman@thinkcmf.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.6.0",
+        "ext-json": "*",
+        "ext-curl": "*",
+        "ext-pdo": "*",
+        "topthink/think-helper": "^1.0",
+        "topthink/think-image": "^1.0",
+        "thinkcmf/cmf-app": "~5.1.0",
+        "thinkcmf/cmf-install": "~5.1.0",
+        "thinkcmf/cmf-api": "~5.1.0"
+    },
+    "extra": {
+        "think-path": "vendor/thinkphp",
+        "think-config": "data/config"
+    },
+    "config": {
+        "vendor-dir": "vendor"
+    }
+}

+ 627 - 0
composer.lock

@@ -0,0 +1,627 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "826af45fcb3fd98012b83fa69ab58431",
+    "packages": [
+        {
+            "name": "electrolinux/phpquery",
+            "version": "0.9.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/electrolinux/phpquery.git",
+                "reference": "6cb8afcfe8cd4ce45f2f8c27d561383037c27a3a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/electrolinux/phpquery/zipball/6cb8afcfe8cd4ce45f2f8c27d561383037c27a3a",
+                "reference": "6cb8afcfe8cd4ce45f2f8c27d561383037c27a3a",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "phpQuery/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Tobiasz Cudnik",
+                    "email": "tobiasz.cudnik@gmail.com",
+                    "homepage": "https://github.com/TobiaszCudnik",
+                    "role": "Developer"
+                },
+                {
+                    "name": "didier Belot",
+                    "role": "Packager"
+                }
+            ],
+            "description": "phpQuery is a server-side, chainable, CSS3 selector driven Document Object Model (DOM) API based on jQuery JavaScript Library",
+            "homepage": "http://code.google.com/p/phpquery/",
+            "time": "2013-03-21T12:39:33+00:00"
+        },
+        {
+            "name": "ezyang/htmlpurifier",
+            "version": "v4.11.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/ezyang/htmlpurifier.git",
+                "reference": "83ab08bc1af7d808a9e0fbf024f1c24bfd73c0a7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/83ab08bc1af7d808a9e0fbf024f1c24bfd73c0a7",
+                "reference": "83ab08bc1af7d808a9e0fbf024f1c24bfd73c0a7",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.2"
+            },
+            "require-dev": {
+                "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "HTMLPurifier": "library/"
+                },
+                "files": [
+                    "library/HTMLPurifier.composer.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL-2.1-or-later"
+            ],
+            "authors": [
+                {
+                    "name": "Edward Z. Yang",
+                    "email": "admin@htmlpurifier.org",
+                    "homepage": "http://ezyang.com"
+                }
+            ],
+            "description": "Standards compliant HTML filter written in PHP",
+            "homepage": "http://htmlpurifier.org/",
+            "keywords": [
+                "html"
+            ],
+            "time": "2019-07-14T18:58:38+00:00"
+        },
+        {
+            "name": "mindplay/annotations",
+            "version": "1.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-annotations/php-annotations.git",
+                "reference": "77ef66f79fb65a7b7e7e005be0bd6b643de43867"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-annotations/php-annotations/zipball/77ef66f79fb65a7b7e7e005be0bd6b643de43867",
+                "reference": "77ef66f79fb65a7b7e7e005be0bd6b643de43867",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/php-code-coverage": "~1.2.1",
+                "phpunit/php-file-iterator": ">=1.3.0@stable"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "mindplay\\annotations\\": "src\\annotations"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL-3.0+"
+            ],
+            "authors": [
+                {
+                    "name": "Rasmus Schultz",
+                    "email": "rasmus@mindplay.dk"
+                }
+            ],
+            "description": "Industrial-strength annotations for PHP",
+            "homepage": "http://blog.mindplay.dk/",
+            "keywords": [
+                "annotations",
+                "framework"
+            ],
+            "time": "2019-01-15T17:03:08+00:00"
+        },
+        {
+            "name": "phpmailer/phpmailer",
+            "version": "v6.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/PHPMailer/PHPMailer.git",
+                "reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/0c41a36d4508d470e376498c1c0c527aa36a2d59",
+                "reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59",
+                "shasum": ""
+            },
+            "require": {
+                "ext-ctype": "*",
+                "ext-filter": "*",
+                "php": ">=5.5.0"
+            },
+            "require-dev": {
+                "doctrine/annotations": "1.2.*",
+                "friendsofphp/php-cs-fixer": "^2.2",
+                "phpdocumentor/phpdocumentor": "2.*",
+                "phpunit/phpunit": "^4.8 || ^5.7",
+                "zendframework/zend-eventmanager": "3.0.*",
+                "zendframework/zend-i18n": "2.7.3",
+                "zendframework/zend-serializer": "2.7.*"
+            },
+            "suggest": {
+                "ext-mbstring": "Needed to send email in multibyte encoding charset",
+                "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
+                "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
+                "psr/log": "For optional PSR-3 debug logging",
+                "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
+                "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "PHPMailer\\PHPMailer\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL-2.1"
+            ],
+            "authors": [
+                {
+                    "name": "Jim Jagielski",
+                    "email": "jimjag@gmail.com"
+                },
+                {
+                    "name": "Marcus Bointon",
+                    "email": "phpmailer@synchromedia.co.uk"
+                },
+                {
+                    "name": "Andy Prevost",
+                    "email": "codeworxtech@users.sourceforge.net"
+                },
+                {
+                    "name": "Brent R. Matzelle"
+                }
+            ],
+            "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+            "time": "2019-02-01T15:04:28+00:00"
+        },
+        {
+            "name": "thinkcmf/cmf",
+            "version": "v5.1.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thinkcmf/cmf-core.git",
+                "reference": "38c731d817c57652f23150b6bd790702bbcceea6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thinkcmf/cmf-core/zipball/38c731d817c57652f23150b6bd790702bbcceea6",
+                "reference": "38c731d817c57652f23150b6bd790702bbcceea6",
+                "shasum": ""
+            },
+            "require": {
+                "electrolinux/phpquery": "^0.9.6",
+                "ezyang/htmlpurifier": "^4.9",
+                "mindplay/annotations": "^1.3",
+                "phpmailer/phpmailer": "~6.0",
+                "thinkcmf/cmf-extend": "~5.1.0",
+                "topthink/framework": "~5.1.0",
+                "topthink/think-captcha": "^2.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "cmf\\": "src"
+                },
+                "files": [
+                    "src/common.php"
+                ],
+                "classmap": [
+                    "src/App.php",
+                    "src/Log.php",
+                    "src/route/dispatch/Module.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "catman",
+                    "email": "catman@thinkcmf.com"
+                }
+            ],
+            "description": "The ThinkCMF Core Package",
+            "time": "2019-07-31T03:56:18+00:00"
+        },
+        {
+            "name": "thinkcmf/cmf-api",
+            "version": "v5.1.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thinkcmf/cmf-api.git",
+                "reference": "a7d9edecc8c44aec6395dac8678a2577127f776d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thinkcmf/cmf-api/zipball/a7d9edecc8c44aec6395dac8678a2577127f776d",
+                "reference": "a7d9edecc8c44aec6395dac8678a2577127f776d",
+                "shasum": ""
+            },
+            "require": {
+                "thinkcmf/cmf": "~5.1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "api\\": "src"
+                },
+                "files": []
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "catman",
+                    "email": "catman@thinkcmf.com"
+                }
+            ],
+            "description": "The ThinkCMF 5.1 Core Api Package",
+            "time": "2019-07-23T23:29:11+00:00"
+        },
+        {
+            "name": "thinkcmf/cmf-app",
+            "version": "v5.1.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thinkcmf/cmf-app.git",
+                "reference": "701477e9c6cfed749bc2ec03b47f891748a9aa58"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thinkcmf/cmf-app/zipball/701477e9c6cfed749bc2ec03b47f891748a9aa58",
+                "reference": "701477e9c6cfed749bc2ec03b47f891748a9aa58",
+                "shasum": ""
+            },
+            "require": {
+                "thinkcmf/cmf": "~5.1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "app\\": "src"
+                },
+                "files": []
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "catman",
+                    "email": "catman@thinkcmf.com"
+                }
+            ],
+            "description": "The ThinkCMF App Package",
+            "time": "2019-07-23T23:27:32+00:00"
+        },
+        {
+            "name": "thinkcmf/cmf-extend",
+            "version": "v5.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thinkcmf/cmf-extend.git",
+                "reference": "39cbfdc69980a4f4b98ee82fa16c605004f26f5f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thinkcmf/cmf-extend/zipball/39cbfdc69980a4f4b98ee82fa16c605004f26f5f",
+                "reference": "39cbfdc69980a4f4b98ee82fa16c605004f26f5f",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "dir\\": "src/dir",
+                    "tree\\": "src/tree",
+                    "wxapp\\": "src/wxapp"
+                },
+                "files": []
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "catman",
+                    "email": "catman@thinkcmf.com"
+                }
+            ],
+            "description": "The ThinkCMF extend Package",
+            "time": "2019-03-04T05:15:23+00:00"
+        },
+        {
+            "name": "thinkcmf/cmf-install",
+            "version": "v5.1.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thinkcmf/cmf-install.git",
+                "reference": "651f7ff4d4413e2bcf98823853144bb2b67f671a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thinkcmf/cmf-install/zipball/651f7ff4d4413e2bcf98823853144bb2b67f671a",
+                "reference": "651f7ff4d4413e2bcf98823853144bb2b67f671a",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "app\\install\\": "src"
+                },
+                "files": []
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "catman",
+                    "email": "catman@thinkcmf.com"
+                }
+            ],
+            "description": "The ThinkCMF Install Package",
+            "time": "2019-07-23T23:26:40+00:00"
+        },
+        {
+            "name": "topthink/framework",
+            "version": "v5.1.37.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/framework.git",
+                "reference": "05eecd121d18d6705aaa10aa44fcdf7c14da4d0b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/framework/zipball/05eecd121d18d6705aaa10aa44fcdf7c14da4d0b",
+                "reference": "05eecd121d18d6705aaa10aa44fcdf7c14da4d0b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.6.0",
+                "topthink/think-installer": "2.*"
+            },
+            "require-dev": {
+                "johnkary/phpunit-speedtrap": "^1.0",
+                "mikey179/vfsstream": "~1.6",
+                "phpdocumentor/reflection-docblock": "^2.0",
+                "phploc/phploc": "2.*",
+                "phpunit/phpunit": "^5.0|^6.0",
+                "sebastian/phpcpd": "2.*",
+                "squizlabs/php_codesniffer": "2.*"
+            },
+            "type": "think-framework",
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "liu21st",
+                    "email": "liu21st@gmail.com"
+                },
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "the new thinkphp framework",
+            "homepage": "http://thinkphp.cn/",
+            "keywords": [
+                "framework",
+                "orm",
+                "thinkphp"
+            ],
+            "time": "2019-05-28T06:57:29+00:00"
+        },
+        {
+            "name": "topthink/think-captcha",
+            "version": "v2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-captcha.git",
+                "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-captcha/zipball/54c8a51552f99ff9ea89ea9c272383a8f738ceee",
+                "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee",
+                "shasum": ""
+            },
+            "require": {
+                "topthink/framework": "5.1.*"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "think\\captcha\\": "src/"
+                },
+                "files": [
+                    "src/helper.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "captcha package for thinkphp5",
+            "time": "2017-12-31T16:37:49+00:00"
+        },
+        {
+            "name": "topthink/think-helper",
+            "version": "v1.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-helper.git",
+                "reference": "5f92178606c8ce131d36b37a57c58eb71e55f019"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-helper/zipball/5f92178606c8ce131d36b37a57c58eb71e55f019",
+                "reference": "5f92178606c8ce131d36b37a57c58eb71e55f019",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "think\\helper\\": "src"
+                },
+                "files": [
+                    "src/helper.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "The ThinkPHP5 Helper Package",
+            "time": "2018-10-05T00:43:21+00:00"
+        },
+        {
+            "name": "topthink/think-image",
+            "version": "v1.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-image.git",
+                "reference": "8586cf47f117481c6d415b20f7dedf62e79d5512"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-image/zipball/8586cf47f117481c6d415b20f7dedf62e79d5512",
+                "reference": "8586cf47f117481c6d415b20f7dedf62e79d5512",
+                "shasum": ""
+            },
+            "require": {
+                "ext-gd": "*"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.8.*",
+                "topthink/framework": "^5.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "think\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "The ThinkPHP5 Image Package",
+            "time": "2016-09-29T06:05:43+00:00"
+        },
+        {
+            "name": "topthink/think-installer",
+            "version": "v2.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-installer.git",
+                "reference": "f5400a12c60e513911aef41fe443fa6920952675"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-installer/zipball/f5400a12c60e513911aef41fe443fa6920952675",
+                "reference": "f5400a12c60e513911aef41fe443fa6920952675",
+                "shasum": ""
+            },
+            "require": {
+                "composer-plugin-api": "^1.0"
+            },
+            "require-dev": {
+                "composer/composer": "1.0.*@dev"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "class": "think\\composer\\Plugin"
+            },
+            "autoload": {
+                "psr-4": {
+                    "think\\composer\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "time": "2018-05-11T06:45:42+00:00"
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": {
+        "php": ">=5.6.0",
+        "ext-json": "*",
+        "ext-curl": "*",
+        "ext-pdo": "*"
+    },
+    "platform-dev": []
+}

+ 29 - 0
docker-compose.yml

@@ -0,0 +1,29 @@
+version: "2"
+
+services:
+  mysql:
+    image: mysql:8.0.13
+    restart: always
+    command: --default-authentication-plugin=mysql_native_password
+    container_name: thinkcmf-db
+    environment:
+      - MYSQL_ROOT_PASSWORD=Root@123
+      - MYSQL_USER=thinkcmf
+      - MYSQL_PASSWORD=Thinkcmf@123
+      - MYSQL_DATABASE=thinkcmf
+      - TZ=Asia/Shanghai
+    volumes:
+      - ./mysql:/var/lib/mysql
+    ports:
+      - "3306:3306"
+      - "80:80"
+    expose:
+      - 80
+
+  thinkcmf:
+    build: .
+    network_mode: service:mysql
+    restart: always
+    container_name: thinkcmf-web
+    depends_on:
+      - mysql

+ 36 - 0
think

@@ -0,0 +1,36 @@
+#!/usr/bin/env php
+<?php
+// +----------------------------------------------------------------------
+// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Author: 老猫 <zxxjjforever@163.com>
+// +----------------------------------------------------------------------
+namespace think;
+// 调试模式开关
+define("APP_DEBUG", true);
+
+// 定义CMF根目录,可更改此目录
+define('CMF_ROOT', __DIR__ . '/');
+
+// 定义CMF数据目录,可更改此目录
+define('CMF_DATA', CMF_ROOT . 'data/');
+
+// 定义网站入口目录
+define('WEB_ROOT', __DIR__ . '/public/');
+
+// 定义应用目录
+define('APP_PATH', CMF_ROOT . 'app/');
+
+// 定义缓存目录
+define('RUNTIME_PATH', CMF_ROOT . 'data/runtime_cli/');
+
+// 加载基础文件
+require __DIR__ . '/vendor/thinkphp/base.php';
+
+// 应用初始化
+Container::get('app', [APP_PATH])->initialize();
+
+// 控制台初始化
+Console::init();

+ 1 - 0
version

@@ -0,0 +1 @@
+5.1.3