thinkphp安装集成、php环境搭建

ps:php快速框架

  • 环境搭建
    • 1. thinkphp下载
    • 2.thinkphp项目集成
      • 1. 在extend目录下新建自己的目录进行php文件的编写
      • 2. 自动注册与手动注册
      • 3. traits引入
      • 4. API友好
      • 5. 添加数据库配置
      • 6. 路由设置
      • 7. 定义需要参数的API接口
    • 3.数据库连接
      • - 查询数据库
      • - 插入新数据
      • - 删除数据
      • - 更新数据

准备工作首先确认已搭建好php开发环境,刚入手可选择appserv 、phpStudy(快速环境搭建)。(也可选择自己可配置的单独安装方式)(不推荐)。

环境搭建

通过appserv方式一键安装好环境
安装完成之后通过localhost访问,此时就安装完成了。
thinkphp安装集成、php环境搭建_第1张图片
那么此时怎么知道php的工作目录呢?如何访问项目中的php文件!
显然,我们要去apache的安装目录下去找,一般都在配置文件中,找到httpd.conf文件进行编辑搜索 < Directory > 标签

<Directory "D:/my_soft/AppServ/www">
即为php的工作目录,我们可以进行修改,重启apache即生效。

1. thinkphp下载

thinkphp5.0框架集成

  • 通过git安装 码云地址
 git clone https://git.oschina.net/liu21st/thinkphp5.git 

切换到刚刚下载的目录下下载framework

https://git.oschina.net/liu21st/framework.git

确认thinkphp在工作目录下,访问方式(访问之前修改public目录下index.php)

// 加载框架引导文件
require __DIR__ . '/../framework/start.php';//确认与目录结构相对应
访问地址
http://localhost/thinkphp5/public/

下图为访问成功
thinkphp安装集成、php环境搭建_第2张图片

2.thinkphp项目集成

project 应用部署目录(来自thinkphp)
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可更改)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─ … 更多类库目录
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共(函数)文件
│ ├─config.php 应用(公共)配置文件
│ ├─database.php 数据库配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─route.php 路由配置文件
├─extend 扩展类库目录(可定义)
├─public WEB 部署目录(对外访问目录)
│ ├─static 静态资源存放目录(css,js,image)
│ ├─index.php 应用入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于 apache 的重写
├─runtime 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think Think 类库包目录
│ │ └─traits 系统 Traits 目录
│ ├─tpl 系统模板目录
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 基础定义文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件

将下载的thinkphp拷贝到项目目录下即可。最终的项目结构为
thinkphp安装集成、php环境搭建_第3张图片

1. 在extend目录下新建自己的目录进行php文件的编写

这里写图片描述


namespace my;//命名空间
class Test{
    public function sayBay(){
        echo "bay";
    }
}
?>

2. 自动注册与手动注册

在公共文件中手动注册

application--common.php //添加注册内容

\think\Loader::addNamespace([
    'my'  => '../application/extend/my/',
]);

应用配置文件中修改

application--config.php //注册

 //注册命名空间
    'root_namespace'=>[
      'my'=>'../application/extend/my/',  
    ],

3. traits引入

5.4php版本需要依赖系统助手函数来导入

load_trait('controller/Jump');

5.4版本以上

省略load_trait
use \traits\controller\Jump;//使用

4. API友好

先修改默认输出类型在 config.php

 // 默认输出类型
 'default_return_type'    => 'json',

编写一个简单的函数

public function index()
    {
        $data=['id'=>01,'name'=>"你好"];
        return ['data'=>$data];
    }

5. 添加数据库配置

config.php中添加:

//独立配置数据库
'extra_config_list'     => ['database'],

database.php文件配置:

  // 数据库类型
  'type'            => 'mysql',
  // 服务器地址
  'hostname'        => '127.0.0.1',
  // 数据库名
  'database'        => 'uzer',
  // 用户名
  'username'        => 'root',
  // 密码
  'password'        => 'root',

6. 路由设置

共有模式:普通模式、混合模式、强制模式。

// 是否开启路由
'url_route_on'           => true,
// 是否强制使用路由
'url_route_must'         => true,

路由定义在route.php中定义:
动态注册

Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');

use think\Route;
// 注册路由到index模块的Index控制器的index操作(方法)
Route::rule('new/:id','index/Index/index');//路由表达式为空可通过之前的地址访问

批量路由注册:(只有一个模块可以省略模块名)
Route::rule(['new/:id'=>'Index/index',
    ' '=>'User/sayHello',
    ···
]);

不为空的访问方式:
http://localhost/phpDemo/public/new/3
空的访问方式为
http://localhost/phpDemo/public

配置定义

'new/:id'=>'Index/index',
':name' =>['User/sayHello',['name'=>'']],

取消public
访问带着public看着很别扭,那么怎样进行修改呢!?

通过nginx代理转发解决
修改nginx的conf--nginx.conf文件
 location /phpDemo {
          proxy_pass http://localhost/phpDemo/public;
 }

将nginx的端口设置成80,apache的端口设置成其它端口
现在通过 http://localhost/phpDemo/ 访问项目

7. 定义需要参数的API接口

 public function login(){
        $user_name=isset($_GET["username"])?$_GET["username"]:'';//检测参数是否为空
        $pwd=isset($_GET["password"])?$_GET["password"]:'';
        if ($user_name!=null && $pwd!=null){
            $data=['name'=>$user_name,'password'=>$pwd];
            return ['data'=>$data,'code'=>200];
        }else{
            $data=['result'=>"用户名密码不能为空"];
            return ['data'=>$data,'code'=>203];
        }
    }

3.数据库连接

首先先了解几个函数

var_dump();//打印出当前类型
print_r();//直接打印易理解的信息
echo()//在数据库查询没有进行编码之前不能用echo进行显示.

之前数据库连接已在conf中配置完成了,这里直接进行数据库的操作,采用不建模型的方式

- 查询数据库

 public function select(){
        $res=Db::query('select * from uzer');
        $arr=json_encode($res);//转换成json字符串
        return ($arr);//返回json对象
    }

助手函数查询

   5.0.9版本之前db助手函数会每次重新连接不是通过单例来获取
   $res=db('uzer')->where('id',1)->find()[select()];

- 插入新数据

public function add(){
        $user_name=isset($_GET["username"])?$_GET["username"]:null;
        $pwd=isset($_GET["password"])?$_GET["password"]:null;

        $data=["name"=>$user_name,"password"=>$pwd];
        $sum=Db::table('uzer')->insert($data);
    }

- 删除数据

Db::table('think_user')->where('id','<',10)->delete();

助手函数
db('uzer')->where('id',1)->delete();

- 更新数据

  $resCount=Db::table('uzer')->where('id',2)->setField('name',"神仙");//更新name字段
  数据中包含主键
   $resCount=Db::table('uzer')->update(['name'=>"神仙",'id'=>1]);
  助手函数
  $resCount=db('uzer')->where('id',2)->update(['name'=>'think']);

关于模型的查询操作,参考文档即可……
现在可以愉快的进行业务逻辑的编写了!

你可能感兴趣的:(php)