Heim  >  Artikel  >  PHP-Framework  >  Zusammenfassung der Einsteiger-Wissenspunkte für ThinkPHP6.0

Zusammenfassung der Einsteiger-Wissenspunkte für ThinkPHP6.0

WBOY
WBOYnach vorne
2022-07-15 16:44:253608Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über thinkphp, der hauptsächlich verwandte Themen im Zusammenhang mit dem Einstieg in ThinkPHP6.0 organisiert. ThinkPHP ist ein kostenloses und quelloffenes, schnelles und einfaches objektorientiertes, leichtes PHP-Entwicklungsframework. Es wurde für Agilität entwickelt Werfen wir einen Blick darauf. Ich hoffe, es wird für alle hilfreich sein.

Zusammenfassung der Einsteiger-Wissenspunkte für ThinkPHP6.0

Empfohlenes Lernen: „PHP-Video-Tutorial

1. Framework-Einführung

ThinkPHP ist ein kostenloses, quelloffenes, schnelles und einfaches objektorientiertes leichtes PHP-Entwicklungsframework für Agilität. Geboren zum Entwickeln WEB-Anwendungen und vereinfachen die Entwicklung von Unternehmensanwendungen. ThinkPHP hält sich seit seiner Gründung an das einfache und praktische Designprinzip und legt dabei mehr Wert auf Benutzerfreundlichkeit. Die Veröffentlichung im Rahmen der Apache2Open-Source-Lizenzvereinbarung bedeutet, dass Sie ThinkPHP kostenlos nutzen können und dass Sie sogar die Anwendungen, die Sie auf Basis von ThinkPHP entwickeln, als Open-Source- oder kommerzielle Produkte veröffentlichen/verkaufen dürfen.

  1. TP-Framework ist ein kostenloses Open-Source-, leichtes, einfaches, schnelles und agiles PHP-Framework

  2. ThinkPHP6.0 erfordert PHP-Version 7.1+ oder höher, die offizielle Empfehlung ist 7.3

  3. Zusätzlich zu PHP7.1+ müssen Sie auch die PDO-Datenbank-Engine und die MBstring-String-Erweiterung aktivieren

2. Installationsprozess

Die offizielle Website bietet keine Softwarepaket-Downloads an. Es wird offiziell empfohlen, Composer zum Herunterladen und Aktualisieren zu verwenden. Es gibt keine Einführung in die Installation und Verwendung von Composer Die Standard-Spiegelquelle von Composer ist im Ausland, die Verbindungsgeschwindigkeit ist langsamer, daher kann die Installationszeit länger sein. Wir empfehlen die Verwendung des inländischen Spiegels (Alibaba Cloud). Der Code lautet wie folgt

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

Wenn Sie für installieren Wenn Sie zum ersten Mal ein neues Framework installieren müssen, wechseln Sie in der Befehlszeilenschnittstelle zu dem WEB-Verzeichnis, das Sie installieren müssen, und führen Sie den folgenden Befehl aus:

composer create-project topthink/think tp

Das „tp“ hier ist der Name des Stammverzeichnisses Das Projekt. Sie können es beliebig ändern. Dies ist das Anwendungsstammverzeichnis, das wir später oft erwähnen. Wenn Sie es bereits installiert haben, wechseln Sie zu Ihrem Anwendungsstammverzeichnis und führen Sie dann den folgenden Befehl aus, um es zu aktualisieren

composer update topthink/framework
3. Führen Sie den Test ausGeben Sie das Projektverzeichnis in der cmd-Befehlszeile ein, um den Befehl auszuführen

php think run
Geben Sie im Browser ein:

http://127.0.0.1:8000 oder

http://localhost:8000 und Sie sehen die Willkommensoberfläche

Wenn 80 Wenn der Port nicht belegt ist, können Sie ihn auch direkt verwenden

php think run -p 80
Dann können Sie über http://localhost/ direkt darauf zugreifen. Zu diesem Zeitpunkt lautet die Standardzugriffsdatei des Browsers: Anwendungsstammverzeichnis/app/controller Die Indexmethode des /index.php-Controllers und der tatsächliche Pfad von http://localhost/ sind http://localhost/index.php/index/index (die spezifischen Gründe werden hier nicht im Detail erläutert, sondern später erläutert). )

Natürlich können Sie jetzt localhost als lokalen Domänennamen für den Zugriff konfigurieren, was hier nicht beschrieben wird. 3. Nehmen Sie tp.com als Beispiel: Greifen Sie auf die Indexoperation des Indexcontrollers zu http: //tp.com                                          Standardeintragsdatei, Standardcontroller und Standardmethode http://tp.com/index.php                                                                                                                              Geben Sie die Eintragsdatei index.php an, die Standardmethode des Standardcontrollers

http://tp. com/index.php/ index Geben Sie die Eintragsdatei index.php an, die Standardmethode des Index-Controllers

http://tp.com/index.php/index/index Geben Sie die Eintragsdatei index.php an, die Indexmethode des Index-Controllers

vier Entwicklungsspezifikationen 规 Entwicklungsspezifikationen haben nichts damit zu tun, direkt auf die offizielle Dokumentation des Handbuchs zu verweisen

5. Verzeichnisstruktur

Verzeichnisstruktur, es ist nicht erforderlich, darauf zu verweisen zum offiziellen Dokument des Handbuchs

 

六.开启调试模式

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

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

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

默认安装的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视频教程

Das obige ist der detaillierte Inhalt vonZusammenfassung der Einsteiger-Wissenspunkte für ThinkPHP6.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen