ThinkPHP6

ThinkPHP6.0的环境要求如下:

  • PHP >= 7.1.0

6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。

安装Composer

如果还没有安装 Composer,在 Linux 和 Mac OS X 中可以运行如下命令:

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

在 Windows 中,你需要下载并运行 Composer-Setup.exe。
如果遇到任何问题或者想更深入地学习 Composer,请参考Composer 文档(英文文档,中文文档)。

由于众所周知的原因,国外的网站连接速度很慢。因此安装的时间可能会比较长,我们建议使用国内镜像(阿里云)。

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

安装稳定版

如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执行下面的命令:

composer create-project topthink/think tp

这里的tp目录名你可以任意更改,这个目录就是我们后面会经常提到的应用根目录。

如果你之前已经安装过,那么切换到你的应用根目录下面,然后执行下面的命令进行更新:

composer update topthink/framework

更新操作会删除thinkphp目录重新下载安装新版本,但不会影响app目录,因此不要在核心框架目录添加任何应用代码和类库。

安装和更新命令所在的目录是不同的,更新必须在你的应用根目录下面执行

如果出现错误提示,请根据提示操作或者参考Composer中文文档

安装开发版

一般情况下,composer 安装的是最新的稳定版本,不一定是最新版本,如果你需要安装实时更新的版本(适合学习过程),可以安装6.0.x-dev版本。

composer create-project topthink/think=6.0.x-dev tp

开启调试模式

应用默认是部署模式,在开发阶段,可以修改环境变量APP_DEBUG开启调试模式,上线部署后切换到部署模式。

本地开发的时候可以在应用根目录下面定义.env文件。

通过create-project安装后在根目录会自带一个.example.env文件(环境变量示例),你可以直接更名为.env文件并根据你的要求进行修改,该示例文件已经开启调试模式

测试运行

现在只需要做最后一步来验证是否正常运行。

进入命令行下面,执行下面指令

php think run

在浏览器中输入地址:

http://localhost:8000/

会看到欢迎页面。恭喜你,现在已经完成ThinkPHP6.0的安装!

如果你本地80端口没有被占用的话,也可以直接使用

php think run -p 80

然后就可以直接访问:

http://localhost/

实际部署中,应该是绑定域名访问到public目录,确保其它目录不在WEB目录下面。

安装视图

composer require topthink/think-view

安装多应用拓展

composer require topthink/think-multi-app

示例:

1、在网站根目录下创建tp6应用

PS D:\phpstudy_pro\WWW> composer create-project topthink/think tp6

2、运行tp6应用

PS D:\phpstudy_pro\WWW> php .\tp6\think run
ThinkPHP Development server is started On 
You can exit with `CTRL-C`
Document root is: D:\phpstudy_pro\WWW\tp6\public
[Mon May  3 19:58:20 2021] PHP 8.0.0 Development Server (http://0.0.0.0:8000) started

3、访问http://127.0.0.1:8080/

ThinkPHP6_第1张图片

Nginx伪静态重写nginx.htaccess

 location / {              
               if (!-e $request_filename) {             
                   rewrite  ^/(.*)$  /index.php/$1  last;      
                   break;  }   
             }

apache伪状态重写.htaccess

 


Options +FollowSymlinks -Multiviews

RewriteEngine on  

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]    #phpstudy配置该项
#RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]     #实际生产配置该项

修改vhosts.conf配置文件

server {
        listen        80;
        server_name  localhost;
        root   "D:/phpstudy_pro/WWW";
        location / {
            index index.php index.html;
            error_page 400 /error/400.html;
            error_page 403 /error/403.html;
            error_page 404 /error/404.html;
            error_page 500 /error/500.html;
            error_page 501 /error/501.html;
            error_page 502 /error/502.html;
            error_page 503 /error/503.html;
            error_page 504 /error/504.html;
            error_page 505 /error/505.html;
            error_page 506 /error/506.html;
            error_page 507 /error/507.html;
            error_page 509 /error/509.html;
            error_page 510 /error/510.html;
            include D:/phpstudy_pro/WWW/tp6/public/nginx.htaccess;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

安装视图和多应用拓展

PS D:\phpstudy_pro\WWW> cd .\tp6\ 

PS D:\phpstudy_pro\WWW\tp6> composer require topthink/think-view

PS D:\phpstudy_pro\WWW\tp6> composer require topthink/think-multi-app 

查看安装目录:

PS D:\phpstudy_pro\WWW\tp6> dir .\vendor\topthink 

    目录: D:\phpstudy_pro\WWW\tp6\vendor\topthink 

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         2021/5/3     19:48                framework
d-----         2021/5/3     19:48                think-helper
d-----         2021/5/3     21:05                think-multi-app
d-----         2021/5/3     19:48                think-orm
d-----         2021/5/3     21:04                think-template
d-----         2021/5/3     19:48                think-trace
d-----         2021/5/3     21:04                think-view 

重命名.example.env文件为.env,并修改内容如下:

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = news
USERNAME = root
PASSWORD = dsja483fsajdjkodoofnvf2xdvf5s
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
PREFIX = ch_

[LANG]
default_lang = zh-cn

支持验证码功能

composer require topthink/think-captcha

命令创建多应用

php think  build index
php think  build admin

查看框架版本

php think version
php think -V

视图模板位置放在项目根目录下的view中

在index/admin应用根目录下创建config目录,并复制config/view.php到当前创建目录

添加一行代码    =>         'view_path'=> app()->getRootPath() .'view\\admin\\',     

 'Think',
    // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
    'auto_rule'     => 1,
    // 模板目录名
    'view_dir_name' =>  'view', 
    // 模板后缀
    'view_suffix'   => 'html',
    // 模板文件名分隔符
    'view_depr'     => DIRECTORY_SEPARATOR,
    // 模板引擎普通标签开始标记
    'tpl_begin'     => '{',
    // 模板引擎普通标签结束标记
    'tpl_end'       => '}',
    // 标签库标签开始标记
    'taglib_begin'  => '{',
    // 标签库标签结束标记
    'taglib_end'    => '}',

    //视图模板位置  
    'view_path'=> app()->getRootPath() .'view\\admin\\',         
];

命令创建控制器

 php think make:controller app\admin\controller\HomeController

命令创建model

php think make:model app\index\model\TestModel

模板继承

 
     {block name="body"}{/block}

{extend name="layout/main" /}

{block name="body"}
 
{/block}

引入资源文件

{load href="/static/js/common.js,/static/css/style.css" /}
{css href="/static/css/style.css" /} 
{js href="/static/js/common.js" /}

{load href="/static/css/style.css" /}
{load href="/static/js/common.js" /} 

你可能感兴趣的:(ThinkPHP,php,thinkphp)