├── .gitignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── application ├── .htaccess ├── api │ ├── controller │ │ └── v1 │ │ │ └── Banner.php │ └── validate │ │ ├── BaseValidate.php │ │ ├── IDMustBePositiveInt.php │ │ └── TestValidate.php ├── command.php ├── common.php ├── config.php ├── database.php ├── index │ └── controller │ │ └── Index.php ├── route.php ├── sample │ └── controller │ │ └── Test.php └── tags.php ├── build.php ├── composer.json ├── extend └── .gitignore ├── o2o_sql.sql ├── public ├── .htaccess ├── favicon.ico ├── index.php ├── info.php ├── robots.txt ├── router.php └── static │ └── .gitignore ├── runtime └── .gitignore ├── think └── vendor └── .gitignore /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | composer.lock 3 | *.log 4 | thinkphp 5 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: php 4 | 5 | branches: 6 | only: 7 | - stable 8 | 9 | cache: 10 | directories: 11 | - $HOME/.composer/cache 12 | 13 | before_install: 14 | - composer self-update 15 | 16 | install: 17 | - composer install --no-dev --no-interaction --ignore-platform-reqs 18 | - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip . 19 | - composer require --update-no-dev --no-interaction "topthink/think-image:^1.0" 20 | - composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0" 21 | - composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0" 22 | - composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0" 23 | - composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0" 24 | - composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0" 25 | - composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0" 26 | - composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0" 27 | - composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0" 28 | - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip . 29 | 30 | script: 31 | - php think unit 32 | 33 | deploy: 34 | provider: releases 35 | api_key: 36 | secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw= 37 | file: 38 | - ThinkPHP_Core.zip 39 | - ThinkPHP_Full.zip 40 | skip_cleanup: true 41 | on: 42 | tags: true 43 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 3 | 版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) 4 | All rights reserved。 5 | ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 6 | 7 | Apache Licence是著名的非盈利开源组织Apache采用的协议。 8 | 该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, 9 | 允许代码修改,再作为开源或商业软件发布。需要满足 10 | 的条件: 11 | 1. 需要给代码的用户一份Apache Licence ; 12 | 2. 如果你修改了代码,需要在被修改的文件中说明; 13 | 3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 14 | 带有原来代码中的协议,商标,专利声明和其他原来作者规 15 | 定需要包含的说明; 16 | 4. 如果再发布的产品中包含一个Notice文件,则在Notice文 17 | 件中需要带有本协议内容。你可以在Notice中增加自己的 18 | 许可,但不可以表现为对Apache Licence构成更改。 19 | 具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | POSSIBILITY OF SUCH DAMAGE. 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ThinkPHP 5.0 2 | =============== 3 | 4 | [](https://packagist.org/packages/topthink/think) 5 | [](https://packagist.org/packages/topthink/think) 6 | [](https://packagist.org/packages/topthink/think) 7 | [](https://packagist.org/packages/topthink/think) 8 | 9 | ThinkPHP5在保持快速开发和大道至简的核心理念不变的同时,PHP版本要求提升到5.4,对已有的CBD模式做了更深的强化,优化核心,减少依赖,基于全新的架构思想和命名空间实现,是ThinkPHP突破原有框架思路的颠覆之作,其主要特性包括: 10 | 11 | + 基于命名空间和众多PHP新特性 12 | + 核心功能组件化 13 | + 强化路由功能 14 | + 更灵活的控制器 15 | + 重构的模型和数据库类 16 | + 配置文件可分离 17 | + 重写的自动验证和完成 18 | + 简化扩展机制 19 | + API支持完善 20 | + 改进的Log类 21 | + 命令行访问支持 22 | + REST支持 23 | + 引导文件支持 24 | + 方便的自动生成定义 25 | + 真正惰性加载 26 | + 分布式环境支持 27 | + 更多的社交类库 28 | 29 | > ThinkPHP5的运行环境要求PHP5.4以上。 30 | 31 | 详细开发文档参考 [ThinkPHP5完全开发手册](http://www.kancloud.cn/manual/thinkphp5) 32 | 33 | ## 目录结构 34 | 35 | 初始的目录结构如下: 36 | 37 | ~~~ 38 | www WEB部署目录(或者子目录) 39 | ├─application 应用目录 40 | │ ├─common 公共模块目录(可以更改) 41 | │ ├─module_name 模块目录 42 | │ │ ├─config.php 模块配置文件 43 | │ │ ├─common.php 模块函数文件 44 | │ │ ├─controller 控制器目录 45 | │ │ ├─model 模型目录 46 | │ │ ├─view 视图目录 47 | │ │ └─ ... 更多类库目录 48 | │ │ 49 | │ ├─command.php 命令行工具配置文件 50 | │ ├─common.php 公共函数文件 51 | │ ├─config.php 公共配置文件 52 | │ ├─route.php 路由配置文件 53 | │ ├─tags.php 应用行为扩展定义文件 54 | │ └─database.php 数据库配置文件 55 | │ 56 | ├─public WEB目录(对外访问目录) 57 | │ ├─index.php 入口文件 58 | │ ├─router.php 快速测试文件 59 | │ └─.htaccess 用于apache的重写 60 | │ 61 | ├─thinkphp 框架系统目录 62 | │ ├─lang 语言文件目录 63 | │ ├─library 框架类库目录 64 | │ │ ├─think Think类库包目录 65 | │ │ └─traits 系统Trait目录 66 | │ │ 67 | │ ├─tpl 系统模板目录 68 | │ ├─base.php 基础定义文件 69 | │ ├─console.php 控制台入口文件 70 | │ ├─convention.php 框架惯例配置文件 71 | │ ├─helper.php 助手函数文件 72 | │ ├─phpunit.xml phpunit配置文件 73 | │ └─start.php 框架入口文件 74 | │ 75 | ├─extend 扩展类库目录 76 | ├─runtime 应用的运行时目录(可写,可定制) 77 | ├─vendor 第三方类库目录(Composer依赖库) 78 | ├─build.php 自动生成定义文件(参考) 79 | ├─composer.json composer 定义文件 80 | ├─LICENSE.txt 授权说明文件 81 | ├─README.md README 文件 82 | ├─think 命令行入口文件 83 | ~~~ 84 | 85 | > router.php用于php自带webserver支持,可用于快速测试 86 | > 切换到public目录后,启动命令:php -S localhost:8888 router.php 87 | > 上面的目录结构和名称是可以改变的,这取决于你的入口文件和配置参数。 88 | 89 | ## 命名规范 90 | 91 | `ThinkPHP5`遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 92 | 93 | ### 目录和文件 94 | 95 | * 目录不强制规范,驼峰和小写+下划线模式均支持; 96 | * 类库、函数文件统一以`.php`为后缀; 97 | * 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致; 98 | * 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写); 99 | 100 | ### 函数和类、属性命名 101 | * 类的命名采用驼峰法,并且首字母大写,例如 `User`、`UserType`,默认不需要添加后缀,例如`UserController`应该直接命名为`User`; 102 | * 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 `get_client_ip`; 103 | * 方法的命名使用驼峰法,并且首字母小写,例如 `getUserName`; 104 | * 属性的命名使用驼峰法,并且首字母小写,例如 `tableName`、`instance`; 105 | * 以双下划线“__”打头的函数或方法作为魔法方法,例如 `__call` 和 `__autoload`; 106 | 107 | ### 常量和配置 108 | * 常量以大写字母和下划线命名,例如 `APP_PATH`和 `THINK_PATH`; 109 | * 配置参数以小写字母和下划线命名,例如 `url_route_on` 和`url_convert`; 110 | 111 | ### 数据表和字段 112 | * 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 `think_user` 表和 `user_name`字段,不建议使用驼峰和中文作为数据表字段命名。 113 | 114 | ## 参与开发 115 | 请参阅 [ThinkPHP5 核心框架包](https://github.com/top-think/framework)。 116 | 117 | ## 版权信息 118 | 119 | ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 120 | 121 | 本项目包含的第三方源码和二进制文件之版权信息另行标注。 122 | 123 | 版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) 124 | 125 | All rights reserved。 126 | 127 | ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 128 | 129 | 更多细节参阅 [LICENSE.txt](LICENSE.txt) 130 | -------------------------------------------------------------------------------- /application/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /application/api/controller/v1/Banner.php: -------------------------------------------------------------------------------- 1 | 'vendor1111111111', 29 | 'email' => 'vendor@qq.com' 30 | ]; 31 | $validate = new Validate([ 32 | 'name' => 'require|max:10', 33 | 'email' => 'email' 34 | ]); 35 | // $validate = new TestValidate(); 36 | $result = $validate->batch()->check($data); 37 | var_dump($validate->getError()); 38 | var_dump($result);*/ 39 | $data = [ 40 | 'id'=>$id 41 | ]; 42 | (new IDMustBePositiveInt())->goCheck(); 43 | $c =1; 44 | echo $c; 45 | } 46 | } -------------------------------------------------------------------------------- /application/api/validate/BaseValidate.php: -------------------------------------------------------------------------------- 1 | param(); 23 | $result = $this->check($params); 24 | if (!$result){ 25 | $error = $this->getError(); 26 | throw new Exception($error); 27 | }else{ 28 | return true; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /application/api/validate/IDMustBePositiveInt.php: -------------------------------------------------------------------------------- 1 | 'require|isPositiveInteger' 17 | ]; 18 | // 自定义验证规则 19 | protected function isPositiveInteger($value, $rule='', $data='', $field = ''){ 20 | if (is_numeric($value) && is_int($value + 0) && ($value + 0)>0){ 21 | return true; 22 | }else{ 23 | return $field.'必须是正整数'; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /application/api/validate/TestValidate.php: -------------------------------------------------------------------------------- 1 | 'require|max:10', 17 | 'email' => 'email' 18 | ]; 19 | } -------------------------------------------------------------------------------- /application/command.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | return []; 13 | -------------------------------------------------------------------------------- /application/common.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // 应用公共文件 13 | -------------------------------------------------------------------------------- /application/config.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | return [ 13 | // +---------------------------------------------------------------------- 14 | // | 应用设置 15 | // +---------------------------------------------------------------------- 16 | 17 | // 应用命名空间 18 | 'app_namespace' => 'app', 19 | // 应用调试模式 20 | 'app_debug' => true, 21 | // 应用Trace 22 | 'app_trace' => false, 23 | // 应用模式状态 24 | 'app_status' => '', 25 | // 是否支持多模块 26 | 'app_multi_module' => true, 27 | // 入口自动绑定模块 28 | 'auto_bind_module' => false, 29 | // 注册的根命名空间 30 | 'root_namespace' => [], 31 | // 扩展函数文件 32 | 'extra_file_list' => [THINK_PATH . 'helper' . EXT], 33 | // 默认输出类型 34 | 'default_return_type' => 'html', 35 | // 默认AJAX 数据返回格式,可选json xml ... 36 | 'default_ajax_return' => 'json', 37 | // 默认JSONP格式返回的处理方法 38 | 'default_jsonp_handler' => 'jsonpReturn', 39 | // 默认JSONP处理方法 40 | 'var_jsonp_handler' => 'callback', 41 | // 默认时区 42 | 'default_timezone' => 'PRC', 43 | // 是否开启多语言 44 | 'lang_switch_on' => false, 45 | // 默认全局过滤方法 用逗号分隔多个 46 | 'default_filter' => '', 47 | // 默认语言 48 | 'default_lang' => 'zh-cn', 49 | // 应用类库后缀 50 | 'class_suffix' => false, 51 | // 控制器类后缀 52 | 'controller_suffix' => false, 53 | 54 | // +---------------------------------------------------------------------- 55 | // | 模块设置 56 | // +---------------------------------------------------------------------- 57 | 58 | // 默认模块名 59 | 'default_module' => 'index', 60 | // 禁止访问模块 61 | 'deny_module_list' => ['common'], 62 | // 默认控制器名 63 | 'default_controller' => 'Index', 64 | // 默认操作名 65 | 'default_action' => 'index', 66 | // 默认验证器 67 | 'default_validate' => '', 68 | // 默认的空控制器名 69 | 'empty_controller' => 'Error', 70 | // 操作方法后缀 71 | 'action_suffix' => '', 72 | // 自动搜索控制器 73 | 'controller_auto_search' => false, 74 | 75 | // +---------------------------------------------------------------------- 76 | // | URL设置 77 | // +---------------------------------------------------------------------- 78 | 79 | // PATHINFO变量名 用于兼容模式 80 | 'var_pathinfo' => 's', 81 | // 兼容PATH_INFO获取 82 | 'pathinfo_fetch' => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'], 83 | // pathinfo分隔符 84 | 'pathinfo_depr' => '/', 85 | // URL伪静态后缀 86 | 'url_html_suffix' => 'html', 87 | // URL普通方式参数 用于自动生成 88 | 'url_common_param' => false, 89 | // URL参数方式 0 按名称成对解析 1 按顺序解析 90 | 'url_param_type' => 0, 91 | // 是否开启路由 92 | 'url_route_on' => true, 93 | // 路由使用完整匹配 94 | 'route_complete_match' => false, 95 | // 路由配置文件(支持配置多个) 96 | 'route_config_file' => ['route'], 97 | // 是否强制使用路由 98 | 'url_route_must' => false,//,true 99 | // 域名部署 100 | 'url_domain_deploy' => false, 101 | // 域名根,如thinkphp.cn 102 | 'url_domain_root' => '', 103 | // 是否自动转换URL中的控制器和操作名 104 | 'url_convert' => true, 105 | // 默认的访问控制器层 106 | 'url_controller_layer' => 'controller', 107 | // 表单请求类型伪装变量 108 | 'var_method' => '_method', 109 | // 表单ajax伪装变量 110 | 'var_ajax' => '_ajax', 111 | // 表单pjax伪装变量 112 | 'var_pjax' => '_pjax', 113 | // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则 114 | 'request_cache' => false, 115 | // 请求缓存有效期 116 | 'request_cache_expire' => null, 117 | 118 | // +---------------------------------------------------------------------- 119 | // | 模板设置 120 | // +---------------------------------------------------------------------- 121 | 122 | 'template' => [ 123 | // 模板引擎类型 支持 php think 支持扩展 124 | 'type' => 'Think', 125 | // 模板路径 126 | 'view_path' => '', 127 | // 模板后缀 128 | 'view_suffix' => 'html', 129 | // 模板文件名分隔符 130 | 'view_depr' => DS, 131 | // 模板引擎普通标签开始标记 132 | 'tpl_begin' => '{', 133 | // 模板引擎普通标签结束标记 134 | 'tpl_end' => '}', 135 | // 标签库标签开始标记 136 | 'taglib_begin' => '{', 137 | // 标签库标签结束标记 138 | 'taglib_end' => '}', 139 | ], 140 | 141 | // 视图输出字符串内容替换 142 | 'view_replace_str' => [], 143 | // 默认跳转页面对应的模板文件 144 | 'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', 145 | 'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', 146 | 147 | // +---------------------------------------------------------------------- 148 | // | 异常及错误设置 149 | // +---------------------------------------------------------------------- 150 | 151 | // 异常页面的模板文件 152 | 'exception_tmpl' => THINK_PATH . 'tpl' . DS . 'think_exception.tpl', 153 | 154 | // 错误显示信息,非调试模式有效 155 | 'error_message' => '页面错误!请稍后再试~', 156 | // 显示错误信息 157 | 'show_error_msg' => false, 158 | // 异常处理handle类 留空使用 \think\exception\Handle 159 | 'exception_handle' => '', 160 | 161 | // +---------------------------------------------------------------------- 162 | // | 日志设置 163 | // +---------------------------------------------------------------------- 164 | 165 | 'log' => [ 166 | // 日志记录方式,内置 file socket 支持扩展 167 | 'type' => 'File', 168 | // 日志保存目录 169 | 'path' => LOG_PATH, 170 | // 日志记录级别 171 | 'level' => [], 172 | ], 173 | 174 | // +---------------------------------------------------------------------- 175 | // | Trace设置 开启 app_trace 后 有效 176 | // +---------------------------------------------------------------------- 177 | 'trace' => [ 178 | // 内置Html Console 支持扩展 179 | 'type' => 'Html', 180 | ], 181 | 182 | // +---------------------------------------------------------------------- 183 | // | 缓存设置 184 | // +---------------------------------------------------------------------- 185 | 186 | 'cache' => [ 187 | // 驱动方式 188 | 'type' => 'File', 189 | // 缓存保存目录 190 | 'path' => CACHE_PATH, 191 | // 缓存前缀 192 | 'prefix' => '', 193 | // 缓存有效期 0表示永久缓存 194 | 'expire' => 0, 195 | ], 196 | 197 | // +---------------------------------------------------------------------- 198 | // | 会话设置 199 | // +---------------------------------------------------------------------- 200 | 201 | 'session' => [ 202 | 'id' => '', 203 | // SESSION_ID的提交变量,解决flash上传跨域 204 | 'var_session_id' => '', 205 | // SESSION 前缀 206 | 'prefix' => 'think', 207 | // 驱动方式 支持redis memcache memcached 208 | 'type' => '', 209 | // 是否自动开启 SESSION 210 | 'auto_start' => true, 211 | ], 212 | 213 | // +---------------------------------------------------------------------- 214 | // | Cookie设置 215 | // +---------------------------------------------------------------------- 216 | 'cookie' => [ 217 | // cookie 名称前缀 218 | 'prefix' => '', 219 | // cookie 保存时间 220 | 'expire' => 0, 221 | // cookie 保存路径 222 | 'path' => '/', 223 | // cookie 有效域名 224 | 'domain' => '', 225 | // cookie 启用安全传输 226 | 'secure' => false, 227 | // httponly设置 228 | 'httponly' => '', 229 | // 是否使用 setcookie 230 | 'setcookie' => true, 231 | ], 232 | 233 | //分页配置 234 | 'paginate' => [ 235 | 'type' => 'bootstrap', 236 | 'var_page' => 'page', 237 | 'list_rows' => 15, 238 | ], 239 | ]; 240 | -------------------------------------------------------------------------------- /application/database.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | return [ 13 | // 数据库类型 14 | 'type' => 'mysql', 15 | // 服务器地址 16 | 'hostname' => '127.0.0.1', 17 | // 数据库名 18 | 'database' => '', 19 | // 用户名 20 | 'username' => 'root', 21 | // 密码 22 | 'password' => '', 23 | // 端口 24 | 'hostport' => '', 25 | // 连接dsn 26 | 'dsn' => '', 27 | // 数据库连接参数 28 | 'params' => [], 29 | // 数据库编码默认采用utf8 30 | 'charset' => 'utf8', 31 | // 数据库表前缀 32 | 'prefix' => '', 33 | // 数据库调试模式 34 | 'debug' => true, 35 | // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 36 | 'deploy' => 0, 37 | // 数据库读写是否分离 主从式有效 38 | 'rw_separate' => false, 39 | // 读写分离后 主服务器数量 40 | 'master_num' => 1, 41 | // 指定从服务器序号 42 | 'slave_no' => '', 43 | // 是否严格检查字段是否存在 44 | 'fields_strict' => true, 45 | // 数据集返回类型 46 | 'resultset_type' => 'array', 47 | // 自动写入时间戳字段 48 | 'auto_timestamp' => false, 49 | // 时间字段取出后的默认时间格式 50 | 'datetime_format' => 'Y-m-d H:i:s', 51 | // 是否需要进行SQL性能分析 52 | 'sql_explain' => false, 53 | ]; 54 | -------------------------------------------------------------------------------- /application/index/controller/Index.php: -------------------------------------------------------------------------------- 1 | *{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }