天天看点

Thinkphp5 - 学习/实践

1.应用场景

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

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

2.学习/操作

1.介绍

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

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

Thinkphp5 - 学习/实践

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
Thinkphp5 - 学习/实践
浏览器测试:
Thinkphp5 - 学习/实践

后续补充

...

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",'[email protected]');

    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",'[email protected]');

    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",'[email protected]');

    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

后续补充

...