다음 튜토리얼 칼럼인 thinkphp Framework에서는 SWOOLE에서 TP5.0을 구현하는 방법을 소개하겠습니다. 필요한 친구들에게 도움이 되길 바랍니다!
TP-SWOOLE
현재 TP5.1은 think-swoole2.0을 정식으로 제공하고 있지만, 5.0의 통합 방식은 사실 좀 맛이 없습니다. 그래서 2.0을 보고 5.0용 확장 패키지를 개발했는데, 이는 작곡가
composer require xaviertony/xavier-swoole
를 사용하여 다운로드할 수 있습니다. 개발 전에 TP5.0의 라이프 사이클을 숙지해야 합니다. 그렇지 않으면 시작할 수 없습니다.
TP는 주로 Apache 또는 NGINX에서 실행되므로 각 작업 후에 릴리스되지만 swoole은 상주 메모리이므로 TP5의 많은 클래스가 싱글톤으로 구현되므로 가장 큰 함정은 주로 요청입니다. . 시작 후 요청이 인스턴스화됩니다. 요청 강제가 삭제되지 않으면 앞으로 매번 이 인스턴스가 사용되며, 각 요청 후에 요청 인스턴스를 먼저 삭제해야 하므로 페이지에 정상적으로 액세스할 수 없게 됩니다. 에 도달했습니다
public static function deletethis() { if (!is_null(self::$instance)) { self::$instance=null; } }
타사 패키지의 구성 파일은 다음과 같아야 합니다. application/extra에서 파일 이름은 swoole.php
<?php return [ 'host' => '0.0.0.0', // 监听地址 'port' => 9501, // 监听端口 'mode' => '', // 运行模式 默认为SWOOLE_PROCESS 'sock_type' => '', // sock type 默认为SWOOLE_SOCK_TCP 'app_path' => getcwd() . '/application', // 应用地址 如果开启了 'daemonize'=>true 必须设置(使用绝对路径) 'file_monitor' => false, // 是否开启PHP文件更改监控(调试模式下自动开启) 'file_monitor_interval' => 2, // 文件变化监控检测时间间隔(秒) 'file_monitor_path' => [], // 文件监控目录 默认监控application和config目录 // 可以支持swoole的所有配置参数 'pid_file' => getcwd() . '/runtime/swoole.pid', 'log_file' => getcwd() . '/runtime/swoole.log', 'task_worker_num' => 20, //'document_root' => getcwd() . 'public', //'enable_static_handler' => true, 'daemonize' => 1,//守护 'worker_num' => 8, //worker process num 'max_request' => 10000, ];
Start command
php think swoole start
Daemon start
php think swoole start -d
Stop service
php think swoole stop
위 내용은 이 방법을 사용하면 TP5.0이 SWOOLE에서 날아갈 수 있습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!