Maison >cadre php >PensezPHP >Résumé des points de connaissances d'entrée de gamme pour ThinkPHP6.0

Résumé des points de connaissances d'entrée de gamme pour ThinkPHP6.0

WBOY
WBOYavant
2022-07-15 16:44:253741parcourir

Cet article vous apporte des connaissances pertinentes sur thinkphp, qui organise principalement les problèmes liés à la prise en main de ThinkPHP6.0. ThinkPHP est un framework de développement PHP léger orienté objet gratuit et open source, rapide et simple. Développement d'applications WEB et développement simplifié d'applications d'entreprise. Jetons-y un coup d'œil, j'espère que cela sera utile à tout le monde.

Résumé des points de connaissances d'entrée de gamme pour ThinkPHP6.0

Apprentissage recommandé : "Tutoriel vidéo PHP"

1. Introduction au framework

ThinkPHP est un framework de développement PHP léger, orienté objet, gratuit, open source, rapide et simple, pour l'agilité. Applications WEB et simplifiez le développement d’applications d’entreprise. ThinkPHP adhère au principe de conception simple et pratique depuis sa naissance tout en conservant d'excellentes performances et un code minimal, il accorde plus d'attention à la facilité d'utilisation. Publier sous le Contrat de licence Open Source signifie que vous pouvez utiliser ThinkPHP gratuitement et que vous êtes même autorisé à publier/vendre les applications que vous développez basées sur ThinkPHP en tant que produits open source ou commerciaux. Apache2

  1. TP framework est un framework PHP open source gratuit, léger, simple, rapide et agile

  2. ThinkPHP6.0 nécessite PHP version 7.1+ ou supérieure, la recommandation officielle est 7.3

  3. En plus de PHP7.1+, vous devez également activer le moteur de base de données PDO et l'extension de chaîne MBstring

2. Processus d'installation

Le site officiel ne propose pas de téléchargement de progiciels. Il est officiellement recommandé d'utiliser composer pour télécharger et mettre à jour

Il n'y a aucune introduction sur l'installation et l'utilisation de composer

Depuis. la source miroir par défaut du compositeur est à l'étranger, la vitesse de liaison est plus lente, donc le temps d'installation peut être plus long. Nous vous recommandons d'utiliser le miroir national (Alibaba Cloud). Le code est le suivant

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

Si vous installez pour. la première fois, ou si vous devez installer un nouveau framework, dans l'interface de ligne de commande, basculez Allez dans le répertoire WEB dont vous avez besoin pour installer et exécutez la commande suivante

composer create-project topthink/think tp

Le "tp" ici est le nom du répertoire racine de le projet. Vous pouvez le modifier arbitrairement. Il s'agit du répertoire racine de l'application que nous mentionnons souvent plus tard

Si vous l'avez déjà fait, passez à votre

répertoire racine de l'application, puis exécutez la commande suivante pour mettre à jour.

composer update topthink/framework
3. Exécutez le test

Entrez le répertoire du projet sur la ligne de commande cmd pour exécuter la commande

php think run

Entrez dans le navigateur : http://127.0.0.1:8000 ou http://localhost:8000 et vous verrez l'interface de bienvenue

Si 80 Lorsque le port n'est pas occupé, vous pouvez également l'utiliser directement

php think run -p 80
Ensuite, vous pouvez utiliser http://localhost/ pour y accéder directement. À ce stade, le fichier d'accès par défaut du navigateur est : répertoire racine de l'application/app/controller. /index.php méthode d'indexation du contrôleur, et le chemin réel de http://localhost/ est http://localhost/index.php/index/index (les raisons spécifiques ne seront pas expliquées en détail ici, mais seront discutées plus tard )

Bien sûr, vous pouvez désormais configurer localhost comme nom de domaine local pour l'accès, ce qui ne sera pas décrit ici 3. Prenez tp.com comme exemple : accédez à l'opération d'index du contrôleur d'index

http : //tp.com                                        Fichier d'entrée par défaut, contrôleur par défaut et méthode par défaut

http://tp.com/index.php                                                                                                                                                                       Spécifiez le fichier d'entrée index.php, la méthode par défaut du contrôleur par défaut

http://tp. com/index.php/ index Spécifiez le fichier d'entrée index.php, la méthode par défaut du contrôleur d'index

http://tp.com/index.php/index/index Spécifiez le fichier d'entrée index.php, la méthode d'index du contrôleur d'index

Spécifications de développement 规 Les spécifications de développement n'ont rien à voir avec la référence directe à la documentation officielle du manuel

5. Structure du répertoire

Structure du répertoire, il n'est pas nécessaire de s'y référer. au document officiel du manuel

 

六.开启调试模式

在项目的开发阶段,我们建议开启框架的调试模式

当调试模式开启后,会牺牲一部分执行效率,但能大大提高我们的 开发排错能力

当部署生产环境时,我们再关闭调试模式即可

默认安装的tp6.0框架默认不开启调试模式,这时我们可以在浏览器输入不存在的控制器或错误的地址进行验证

表示调试未开启

通过命令行安装的 TP6.0,会自动在根目录生成一个.example.env 文件,即环境变量示例文件,我们只要把这个文件更名为.env   (通常复制一份更名即可),   即可生效,同时开启调试模式  

//环境变量示例文件

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = username
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn

不难看出文件APP_DEBUG = true打开调试模式,若要关闭调试模式将true改为false,另外还有应用配置,数据库和语言设置,当然你也可以配置更多内容

现在我们在刷新刚才的页面,会提示控制器不存在,并且右下角会出现 Trace 调试小图标,说明调试开启了

开启调试模式有什么用:

a. 记录系统运行流程的执行过程  

b.   展示错误和调试信息,并开启日志记录  

c.   模版修改可以及时生效   (   不会被缓存干扰   )  

d.   启动右下角的   Trace   调试功能,更加强大  

e.   发生异常时,也会显示异常信息  

还有一种模式,就是关闭调试的时候,也可以显示简要的错误信息,打开根目录下 config 的 app.php 最后一行设置为true

'show_error_msg'   => false,

 

七.配置信息

配置文件有两种形式:一种是采用.env适用于本地开发,另一种就是在根目录下的config目录下,包含整个项目的配置,适用于生产环境

注意:官方明确表示.env文件部署后会被忽略,所以它仅适用于本地开发

配置优先级,如果在本地测试时   .env   优先于 config,从   config   配置中可以看出,它是先读取   .env   的,然后再默认配置一个自己的,而部署环境则忽略.env,只读取config  

开开发项目过程中,我们少不了获取配置文件中的属性值,那么我们怎么能获取到这些值呢?接下来我们以获取数据库的用户名为例

对于.env文件。

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = root
PASSWORD = 123456
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn

比如要获取[DATABASE]下的USERNAME=root获取方式如下:                                                    

use think\facade\Env;                                                            return Env::get('database.username');                                              我们写一个getEnv发方法获取databases下的username,这个比较简单,直接获取.env文件下的,database下的username
<?php
namespace app\controller;

use app\BaseController;
use think\facade\Env;//引入env类

class Index extends BaseController
{

    public function getEnv(){
        return Env::get(&#39;database.username&#39;);
    }
}

对于config文件

<?php

return [
    // 默认使用的数据库连接配置
    &#39;default&#39;         => env('database.driver', 'mysql'),

    // 自定义时间查询规则
    'time_query_rule' => [],

    // 自动写入时间戳字段
    // true为自动识别类型 false关闭
    // 字符串则明确指定时间字段类型 支持 int timestamp datetime date
    'auto_timestamp'  => true,

    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',

    // 时间字段配置 配置格式:create_time,update_time
    'datetime_field'  => '',

    // 数据库连接配置信息
    'connections'     => [
        'mysql' => [
            // 数据库类型
            'type'            => env('database.type', 'mysql'),
            // 服务器地址
            'hostname'        => env('database.hostname', '127.0.0.1'),
            // 数据库名
            'database'        => env('database.database', ''),
            // 用户名
            'username'        => env('database.username', 'root123'),
            // 密码
            'password'        => env('database.password', ''),
            // 端口
            'hostport'        => env('database.hostport', '3306'),
            // 数据库连接参数
            'params'          => [],
            // 数据库编码默认采用utf8
            'charset'         => env('database.charset', 'utf8'),
            // 数据库表前缀
            'prefix'          => env('database.prefix', ''),

            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
            'deploy'          => 0,
            // 数据库读写是否分离 主从式有效
            'rw_separate'     => false,
            // 读写分离后 主服务器数量
            'master_num'      => 1,
            // 指定从服务器序号
            'slave_no'        => '',
            // 是否严格检查字段是否存在
            'fields_strict'   => true,
            // 是否需要断线重连
            'break_reconnect' => false,
            // 监听SQL
            'trigger_sql'     => env('app_debug', true),
            // 开启字段缓存
            'fields_cache'    => false,
        ],

        // 更多的数据库配置信息
    ],
];

比如要获取[DATABASE]下的USERNAME=root获取方式如下:

use think\facade\Config;
return Config::get('database.connections.mysql.username');

我们写一个getConfig发方法获取databases下的username,这个就要麻烦一点,这里获取的顺序依次是:

所在配置文件——>数据库连接配置信息——>mysql数据库——>用户名

需要注意的是:由于config配置文件的优先级低于.env,所以,如果当前是处于开发环境,如下代码并不会获取到config目录下database配置文件的用户名,而是获取.env文件的用户名,所以想要获取正确配置则先关闭开发环境

<?php
namespace app\controller;

use app\BaseController;

use think\facade\Env;//引入env类

class Index extends BaseController
{

    public function hello($name = 'ThinkPHP6')
    {
        return 'hello,' . $name;
    }


    public function getEnv(){
        return Env::get('database.username');
    }


    public function getConfig(){
        return Config::get('database.connections.mysql.username');

    }
}

对于上边获取config配置有限读取.env文件的问题,我们可以在获取信息之前先使用has方法判断当前需要获取值是否存在两个文件再决定读取哪一个文件

<?php
namespace app\controller;
use think\facade\Config;
use app\BaseController;

use think\facade\Env;//引入env类

class Index extends BaseController
{
   



    public function getEnv(){
        return Env::get('database.username');
    }


    public function getConfig(){
        return Config::get('database.connections.mysql.username');

    }

    public function getSite(){

        echo Env::has('database.username');
        echo Config::has('database.connections.mysql.username');
    }
}

我们得到的值为字符串用echo输出

推荐学习:《PHP视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer