TP5安装配置
0
无    2018-04-10 19:27:53    9161    0
fumingwan

一,安装流程

打开开发手册 https://www.kancloud.cn/manual/thinkphp5/118006

composer安装

 

1 下载 composer  并双击安装  选中可以更改php.ini  然后在cmd 中键入composer 测试是否安装好

2 使用国内镜像的composer  在cmd中切换到所要安装位置WWW目录中键入 

composer config -g repo.packagist composer https://packagist.phpcomposer.com 

3 安装thinkphp5   cmd中键入

composer create-project topthink/think=5.0.* tp5  --prefer-dist​ 

 

目录介绍

系统类    WWW\thinkphp5\thinkphp\lilibrary\think
系统方法  WWW\thinkphp5\thinkphp\helper.php
          Controller   实例化控制器
          action       调用模块的操作方法
          config       设置和获取配置
          dump         浏览器友好的变量输出

 

 

地址简介

 

 

开启调试debug

有错误将展示出来

<php ?
 'app_debug' =>true;

 

二,模块 和调用方法

在 application 里面新建一个admin模块 如yii那样新建 mvc三个文件夹

并写相关方法 注意命名空间

<?php
namespace app\admin\controller;

use app\index\controller\Index as Index1; // 防重名
use think\Controller;
class Index extends Controller{
	

	public function Index()
	{
		 return view('index');
	}

	public function UseIndexController()
	{
		$admin = new \app\index\controller\User;   //后台调用前台方法
		return $admin->index();
	}
}

?>

?>

 

跨控制器调用方法 实例类的两个方法

<?php
方法1 
$admin = new \app\index\controller\User;
return $admin->index2();
方法2 
$admin = controller('index/index');
return $admin->index2();

 

直接调用方法

<?php
同一个类里面
$this->test();
self::test();
Index::test();
action('index');  // 使用当前类方法

同模块下不同类
action('User/index');  // 使用同模块下的不同类方法

不同模块下
action('admin/Index/admintest');


三,配置的介绍

 

优先级  动态配置 > 模块配置 > 场景配置 > 应用配置 > 惯例配置 

其优先级由 WWW\thinkphp5\thinkphp\library\think\App.php中init( )方法 决定

1惯例配置           WWW\thinkphp5\thinkphp\convention.php

2 应用配置          WWW\thinkphp5\application\config.php  指针对 application 所有应用中的 统一配置

3 extra扩展配置  WWW\thinkphp5\application\database.php 和 WWW\thinkphp5\application\extra 文件夹

                       自定义的扩展配置就在 extra文件夹里面新建

                              模块也可以支持自己的扩展配置文件,只需要放入 application/模块名/extra下面就可以自动加载。

4 场景配置     

    说明:譬如公司一套数据库配置  家里一套数据库配置   回到家将  :

    1  将 WWW\thinkphp5\application\config.php    'app_status'  => 'home',

    2  在  WWW\thinkphp5\application 目录下 新建home.php  此后此文件将会覆盖 database.php  里面的配置

<?php
return [
    "database"=>[
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'tp5',
        // 用户名
        'username'        => 'root',
        // 密码
        'password'        => 'root',
        // 端口
        'hostport'        => '3306',
        ]
    ];

 

5 模块配置

   1  WWW\thinkphp5\application\index 模块下 新建 config.php 并写入配置如上

   2  之后此模块下 获取配置参数 将优先在此文件中 取值

 

6 动态配置 即设置配置参数值

 

<?php
使用系统函数
config('asm.php','赵本山');  // 设置 asm数组中键为php 的值
使用系统类
\think\Config::set('asm.php','刘德华');

 


7 系统函数和系统类 获取配置参数

   我们在 惯例配置 或者 应用配置 中的return[] 里面新增数组

    如果是  扩展配置  则需要加上文件名称 如  echo config('database.asm.php');

<?php

'asm'=>[
        'kouhao'=>'为上市努力',
        'php'   =>'付明皖',
    ],
之后在方法里面调用
  $asm = config('asm');               //使用系统函数
  echo $asm['php'];
  
  echo config('asm.php');             //以点 去取数组值

使用系统类
  $asm = \think\Config::get('asm');
  echo $asm['kouhao'];
  
  echo \think\Config::get('asm.php');  //以点 去取数组值

四,环境变量配置和读取

注意不能读取整个数组

 

 <?php
 在网站根目录(public和vender同级目录)下新建  .env 文件
app_debug=true
app_status=home

[database]
root=root
password=123456
 读取
 \think\Env::get('name');
 \think\Env::get('name','没有');  //也可以给不存在时定默认值
 
 $env = \think\Env::get('database.password');  //获取数组下的值
 var_dump($env);
 

可以在应用配置里面更改部分经常需要更改的参数放在环境变量里面方便更改

 

<?php
use \think\Env;
return [
    // +----------------------------------------------------------------------
    // | 应用设置
    // +----------------------------------------------------------------------

    // 应用调试模式
    'app_debug'              => Env::get('app_debug',false),
    // 应用Trace
    'app_trace'              => false,
    // 应用模式状态
    'app_status'             => Env::get('app_status',''),


 

五,实现前后端分离 并美化url 

  绑定模块


首先保证有两个模块 index admin
在public文件夹里新增后台入口文件 admin.php 并将原入口文件拷贝进去
在新建的后台入口文件admin.php定义应用目录下面添加 define('BIND_MODULE','admin');
在原来的入口文件index.php定义应用目录下面添加 define('BIND_MODULE','index');
之后访问 http://www.tp5.com/index.php  将进入index模块
而访问 http://www.tp5.com/admin.php    将进入admin模块

 隐藏入口文件

apache

httpd.conf 搜索rewrite
# LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 #

找到相关域名配置文件 设置访问权限
AllowOverride None    修改为: AllowOverride All

最后在入口文件里.htaccess
    <IfModule mod_rewrite.c>
      Options +FollowSymlinks -Multiviews
      RewriteEngine On
    
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
   </IfModule>
   
   

 如果想实现隐藏入口的 .php

单入口文件可以这样,否则只能 index模块下隐藏 .php  其他模块依然不可以

将原文件倒数第二行  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

改成了  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

就添加了一个 ‘?’ 而已

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tp5-5 连接,操作,调试数据库
文档导航