首頁 >php框架 >ThinkPHP >這個方法可以讓TP5.0在SWOOLE上飛起來!

這個方法可以讓TP5.0在SWOOLE上飛起來!

藏色散人
藏色散人轉載
2020-07-20 16:44:153137瀏覽

下面由thinkphp框架教學專欄跟大家介紹讓TP5.0在SWOOLE上飛起來的方法,希望對需要的朋友有幫助!

這個方法可以讓TP5.0在SWOOLE上飛起來!

TP-SWOOLE

#目前,TP5.1官方已經提供了think-swoole2.0,集成程度以前優雅很多,不過5.0的整合方式確實有些雞肋。所以看了下2.0,為5.0開發了一個擴充包,可以採用composer下載

composer require xaviertony/xavier-swoole

#開發之前,需要先熟悉TP5.0的生命週期,不然就無從下手了。

由於TP主要在Apache或NGINX下運行,每次運行結束都會進行釋放,而swoole則是常住內存,TP5很多類都由單例實現,所以難免會入坑,其中大坑主要是request,由於啟動後請求被實例化,如果不刪除請求勢力,以後每次都是採用這個實例,造成無法正常訪問頁面,因為每次請求達到後需要先將請求實例刪除

public static function deletethis()
    {
        if (!is_null(self::$instance)) {
            self::$instance=null;
        }
    }

第三方套件的設定檔必須在application/extra下,檔案名稱為swoole.php

<?php
return [
    &#39;host&#39;                  => &#39;0.0.0.0&#39;, // 监听地址
    &#39;port&#39;                  => 9501, // 监听端口
    &#39;mode&#39;                  => &#39;&#39;, // 运行模式 默认为SWOOLE_PROCESS
    &#39;sock_type&#39;             => &#39;&#39;, // sock type 默认为SWOOLE_SOCK_TCP
    &#39;app_path&#39;              => getcwd() . &#39;/application&#39;, // 应用地址 如果开启了 &#39;daemonize&#39;=>true 必须设置(使用绝对路径)
    &#39;file_monitor&#39;          => false, // 是否开启PHP文件更改监控(调试模式下自动开启)
    &#39;file_monitor_interval&#39; => 2, // 文件变化监控检测时间间隔(秒)
    &#39;file_monitor_path&#39;     => [], // 文件监控目录 默认监控application和config目录
    // 可以支持swoole的所有配置参数
    &#39;pid_file&#39;              => getcwd()  . &#39;/runtime/swoole.pid&#39;,
    &#39;log_file&#39;              => getcwd()  . &#39;/runtime/swoole.log&#39;,
    &#39;task_worker_num&#39;       => 20,
    //&#39;document_root&#39;         => getcwd() . &#39;public&#39;,
    //&#39;enable_static_handler&#39; => true,
    &#39;daemonize&#39;                => 1,//守护
    &#39;worker_num&#39; => 8,    //worker process num
    &#39;max_request&#39; => 10000,
];

啟動指令

php think swoole start

守護啟動

php think swoole start -d

停止服務

php think swoole stop

以上是這個方法可以讓TP5.0在SWOOLE上飛起來!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除