tp5学习基础知识总结 1 安装入门

一,安装流程

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

composer安装

 

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

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

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

3 安装thinkphp5   cmd中键入

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

 

目录介绍

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

 

 

地址简介

 

 

开启调试debug

有错误将展示出来

 
  1. <php ?
  2.  'app_debug' =>true;

 

二,模块 和调用方法

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

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

 
  1. <?php
  2. namespace app\admin\controller;
  3.  
  4. use app\index\controller\Index as Index1; // 防重名
  5. use think\Controller;
  6. class Index extends Controller{
  7.  
  8.  
  9. public function Index()
  10. {
  11.  return view('index');
  12. }
  13.  
  14. public function UseIndexController()
  15. {
  16. $admin = new \app\index\controller\User;   //后台调用前台方法
  17. return $admin->index();
  18. }
  19. }
  20.  
  21. ?>
  22.  
  23. ?>

 

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

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

 

直接调用方法

 
  1. <?php
  2. 同一个类里面
  3. $this->test();
  4. self::test();
  5. Index::test();
  6. action('index');  // 使用当前类方法
  7.  
  8. 同模块下不同类
  9. action('User/index');  // 使用同模块下的不同类方法
  10.  
  11. 不同模块下
  12. 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  里面的配置

 
  1. <?php
  2. return [
  3.     "database"=>[
  4.         // 数据库类型
  5.         'type'            => 'mysql',
  6.         // 服务器地址
  7.         'hostname'        => '127.0.0.1',
  8.         // 数据库名
  9.         'database'        => 'tp5',
  10.         // 用户名
  11.         'username'        => 'root',
  12.         // 密码
  13.         'password'        => 'root',
  14.         // 端口
  15.         'hostport'        => '3306',
  16.         ]
  17.     ];

 

5 模块配置

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

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

 

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

 

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

 

 

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

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

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

 
  1. <?php
  2.  
  3. 'asm'=>[
  4.         'kouhao'=>'为上市努力',
  5.         'php'   =>'付明皖',
  6.     ],
  7. 之后在方法里面调用
  8.   $asm = config('asm');               //使用系统函数
  9.   echo $asm['php'];
  10.   
  11.   echo config('asm.php');             //以点 去取数组值
  12.  
  13. 使用系统类
  14.   $asm = \think\Config::get('asm');
  15.   echo $asm['kouhao'];
  16.   
  17.   echo \think\Config::get('asm.php');  //以点 去取数组值

四,环境变量配置和读取

注意不能读取整个数组

 

 
  1.  <?php
  2.  在网站根目录(public和vender同级目录)下新建  .env 文件
  3. app_debug=true
  4. app_status=home
  5.  
  6. [database]
  7. root=root
  8. password=123456
  9.  读取
  10.  \think\Env::get('name');
  11.  \think\Env::get('name','没有');  //也可以给不存在时定默认值
  12.  
  13.  $env = \think\Env::get('database.password');  //获取数组下的值
  14.  var_dump($env);
  15.  

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

 

 
  1. <?php
  2. use \think\Env;
  3. return [
  4.     // +----------------------------------------------------------------------
  5.     // | 应用设置
  6.     // +----------------------------------------------------------------------
  7.  
  8.     // 应用调试模式
  9.     'app_debug'              => Env::get('app_debug',false),
  10.     // 应用Trace
  11.     'app_trace'              => false,
  12.     // 应用模式状态
  13.     'app_status'             => Env::get('app_status',''),

 

 

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

  绑定模块

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

 隐藏入口文件

apache

 
  1. httpd.conf 搜索rewrite
  2. # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 #
  3.  
  4. 找到相关域名配置文件 设置访问权限
  5. AllowOverride None    修改为: AllowOverride All
  6.  
  7. 最后在入口文件里.htaccess
  8.     <IfModule mod_rewrite.c>
  9.       Options +FollowSymlinks -Multiviews
  10.       RewriteEngine On
  11.     
  12.       RewriteCond %{REQUEST_FILENAME} !-d
  13.       RewriteCond %{REQUEST_FILENAME} !-f
  14.       RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
  15.    </IfModule>
  16.    
  17.    

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

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

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

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

就添加了一个 ‘?’ 而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值