Thinkphp5 - 学习/实践
2022-07-28 14:14:58
230
{{single.collect_count}}

1.应用场景

快速高效开发安全高性能web应用.

开发新项目/产品, 维护老项目.

2.学习/操作

1.介绍

官网: http://www.thinkphp.cn

教程: https://sites.thinkphp.cn/1556331

 

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.

也是国产PHP框架, 有不少中小企业采用thinkphp进行开发.

 

所以很有可能会遇到thinkPHP开发的项目,可能重零开发, 可能维护项目

 

2.实践

Note:

如果从零开始开发新项目, 推荐使用最新版: thinkphp 6

或者 使用laravel 较新版本,  tp 6也是大量借鉴了laravel的思想甚至实现.

 

 

安装...开发...测试...部署...

 

这里以 ThinkPHP 6.x为例

ThinkPHP 6.x

安装:

composer create-project topthink/think tp 6.0.*

如果需要更新框架使用

composer update topthink/framework

 

或者 先克隆代码

git clone https://gitee.com/william_ning/thinkPHP6.git

然后执行:

composer install

 

浏览器测试:

 

 

 

 

后续补充

...

3.问题

1.thinkphp5如何将部署环境变量和开发环境分开?

http://www.thinkphp.cn/topic/50810.html  

思路:

利用环境变量来读取不同的场景配置文件来实现

 

具体操作可参考下面:

实现一:

// 检测环境变量
$env = isset($_SERVER['APPLICATION_ENV']) ? $_SERVER['APPLICATION_ENV'] : 'development';
if (!in_array($env, array('development', 'testing', 'production', 'preview'))){
    exit('can not identify environment');
}
define('APP_STATUS', $env);

 

config.php
    // 应用模式状态
    'app_status' => APP_STATUS,

然后在 development.php 或 testing.php 里就配置你不同的数据库或其他,nginx 的fastcgi的param 配一下这个APPLICATION_ENV变量即可。

 

实现二:

if ($_SERVER['HTTP_HOST'] == 'test.oa.com' || $_SERVER['HTTP_HOST'] == 'pro.oa.com') {
    //production enviroment
    define("DB_HOST",'10.10.10.10');
    define("DB_PORT",'10000');
    define("DB_USER",'testtest');
    define("DB_PASSWORD",'test@2018');
    define("DB_DATABASE",'testtest');
    define("DEBUG", false);
    define("RIO_TOKEN", $_SERVER['HTTP_HOST'] == 'pro.oa.com' ? 'Q3NednewYAsdfhGq0oxECHI2TyzFTpIW': '29f043705ba64532sdfgsa4eb8296aa2082');
} else if ($_SERVER['HTTP_HOST'] == 'dev.oa.com') {
    //节能减排小游戏
    define("DB_HOST",'10.10.10.11');
    define("DB_PORT",'10000');
    define("DB_USER",'testtest1');
    define("DB_PASSWORD",'test1@2018');
    define("DB_DATABASE",'testtest1');
    define("DEBUG", false);
    define("RIO_TOKEN", '0b06e8sdf0c443ba625230ea4fd448a');
} else {
    define("DB_HOST",'10.0.0.12');
    define("DB_PORT",'3306');
    define("DB_USER",'xtcdev');
    define("DB_PASSWORD",'test@2017');
    define("DB_DATABASE",'testtes');
    define("DEBUG", true);
    define("RIO_TOKEN",'EPkmJrEcsdfsdoblwefB442xapn3hp3PVHM');
}

 

实现三:

public/index.php  入口脚本

// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

 

实现四:  //虚拟主机

//you can also edit your virtual host configuration adding this line:

SetEnv APPLICATION_ENV "development"

 

后续补充

...

4.参考

官网: http://www.thinkphp.cn

教程: https://sites.thinkphp.cn/1556331

http://www.thinkphp.cn/topic/50810.html

后续补充

...

 

 

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}