Thinkphp5.1里使用workerman的方法
Workerman是一款纯PHP开发的开源高性能的异步PHP socket框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,本文就来为大家介绍一下Thinkphp5.1里使用workerman的方法。
之前一直用swoole,最近研究workerman,于是composer安装
composer require workerman/workerman
在Thinkphp控制器里面写一段测试代码
<?php namespace app\workerman\controller; use think\Controller; use Workerman\Worker; class Index extends Controller { public function index() { // 创建一个Worker监听2345端口,使用http协议通讯 $http_worker = new Worker("http://0.0.0.0:2345"); // 启动4个进程对外提供服务 $http_worker->count = 4; // 接收到浏览器发送的数据时回复hello world给浏览器 $http_worker->onMessage = function($connection, $data) { // 向浏览器发送hello world $connection->send('hello world'); }; // 运行worker Worker::runAll(); } }
命令行执行:php index.php workerman/index。以为大功告成,但是却报下面的提示:
很明显,workerman不能直接运行文件,看官方文档是使用
php index.php start
php index.php stop
php index.php restart
这样的格式执行。于是修改index.php文件绑定路由
// [ 应用入口文件 ] namespace think; // 加载基础文件 require __DIR__ . '/../thinkphp/base.php'; // 支持事先使用静态方法设置Request对象和Config对象 // 执行应用并响应 Container::get('app')->bind("workerman/index")->run()->send();
直接运行php index.php start,汗,居然提示说找不到start该模型。特么tp5把start作为路由解析了。那怎么办,workerman的需要使用start的方式执行,tp5却要把该参数解析成模型啊。
后查阅资料发现,Thinkphp5.1本身就整合了workerman了。可以使用thinkphp5的方式安装workerman,那样就可以使用thinkphp的运行方式运行了。
执行命令改成:
php think worker
后续发现Thinkphp5.1整合的workerman封装的有点麻烦,不好用,而且如果你想用PHPSocketIO之类的workerman服务用整合的方式很麻烦。
workerman把第一个参数作为操作服务的命令,那我把它改成用第二个参数作为操作命令行不行?
果然就是这么做的。查找workerman插件里面的parseCommand()函数。这个鬼函数就是获取那个操作命令的,把:
argv[1]改成argv[2],argv[2]改成argv[2]改成argv[2]改成argv[3]
protected static function parseCommand() { if (static::$_OS !== OS_TYPE_LINUX) { return; } global $argv; // Check argv; $start_file = $argv[0]; $available_commands = array( 'start', 'stop', 'restart', 'reload', 'status', 'connections', ); $usage = "Usage: php yourfile <command> [mode]\nCommands: \nstart\t\tStart worker in DEBUG mode.\n\t\tUse mode -d to start in DAEMON mode.\nstop\t\tStop worker.\n\t\tUse mode -g to stop gracefully.\nrestart\t\tRestart workers.\n\t\tUse mode -d to start in DAEMON mode.\n\t\tUse mode -g to stop gracefully.\nreload\t\tReload codes.\n\t\tUse mode -g to reload gracefully.\nstatus\t\tGet worker status.\n\t\tUse mode -d to show live status.\nconnections\tGet worker connections.\n"; if (!isset($argv[2]) || !in_array($argv[2], $available_commands)) { if (isset($argv[2])) { static::safeEcho('Unknown command: ' . $argv[2] . "\n"); } exit($usage); } // Get command. $command = trim($argv[2]); $command2 = isset($argv[3]) ? $argv[3] : '';
执行命令改成
php server.php index start
(第一个参数用于Thinkphp解析路由,第二个参数用于workerman解析操作服务命令)
更多workerman知识请关注PHP中文网workerman框架教程栏目。
Atas ialah kandungan terperinci Thinkphp5.1里使用workerman的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk menjalankan projek ThinkPHP, anda perlu: memasang Komposer untuk mencipta projek, masukkan direktori projek dan laksanakan php bin/console serve;

Untuk melaksanakan muat naik dan muat turun fail dalam dokumen Workerman, contoh kod khusus diperlukan. Pengenalan: Workerman ialah rangka kerja komunikasi rangkaian tak segerak PHP berprestasi tinggi yang ringkas, cekap dan mudah digunakan. Dalam pembangunan sebenar, muat naik dan muat turun fail adalah keperluan fungsi biasa Artikel ini akan memperkenalkan cara menggunakan rangka kerja Workerman untuk melaksanakan muat naik dan muat turun fail, dan memberikan contoh kod khusus. 1. Muat naik fail: Muat naik fail merujuk kepada operasi memindahkan fail pada komputer tempatan ke pelayan. Yang berikut digunakan

ThinkPHP mempunyai berbilang versi yang direka untuk versi PHP yang berbeza. Versi utama termasuk 3.2, 5.0, 5.1 dan 6.0, manakala versi kecil digunakan untuk membetulkan pepijat dan menyediakan ciri baharu. Versi stabil terkini ialah ThinkPHP 6.0.16. Apabila memilih versi, pertimbangkan versi PHP, keperluan ciri dan sokongan komuniti. Adalah disyorkan untuk menggunakan versi stabil terkini untuk prestasi dan sokongan terbaik.

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Perbandingan prestasi rangka kerja Laravel dan ThinkPHP: ThinkPHP umumnya berprestasi lebih baik daripada Laravel, memfokuskan pada pengoptimuman dan caching. Laravel berfungsi dengan baik, tetapi untuk aplikasi yang kompleks, ThinkPHP mungkin lebih sesuai.

Swoole dan Workerman kedua-duanya adalah rangka kerja pelayan PHP berprestasi tinggi. Terkenal dengan pemprosesan tak segerak, prestasi cemerlang dan kebolehskalaannya, Swoole sesuai untuk projek yang perlu mengendalikan sejumlah besar permintaan serentak dan daya pemprosesan yang tinggi. Workerman menawarkan fleksibiliti mod tak segerak dan segerak, dengan API intuitif yang lebih sesuai untuk kemudahan penggunaan dan projek yang mengendalikan volum serentak yang lebih rendah.

"Cadangan Pembangunan: Cara Menggunakan Rangka Kerja ThinkPHP untuk Melaksanakan Tugas Asynchronous" Dengan perkembangan pesat teknologi Internet, aplikasi Web mempunyai keperluan yang semakin tinggi untuk mengendalikan sejumlah besar permintaan serentak dan logik perniagaan yang kompleks. Untuk meningkatkan prestasi sistem dan pengalaman pengguna, pembangun sering mempertimbangkan untuk menggunakan tugas tak segerak untuk melaksanakan beberapa operasi yang memakan masa, seperti menghantar e-mel, memproses muat naik fail, menjana laporan, dsb. Dalam bidang PHP, rangka kerja ThinkPHP, sebagai rangka kerja pembangunan yang popular, menyediakan beberapa cara mudah untuk melaksanakan tugas tak segerak.

Pengenalan kepada cara melaksanakan penggunaan asas dokumen Workerman: Workerman ialah rangka kerja pembangunan PHP berprestasi tinggi yang boleh membantu pembangun membina aplikasi rangkaian konkurensi tinggi dengan mudah. Artikel ini akan memperkenalkan penggunaan asas Workerman, termasuk pemasangan dan konfigurasi, mencipta perkhidmatan dan port mendengar, mengendalikan permintaan pelanggan, dsb. Dan berikan contoh kod yang sepadan. 1. Pasang dan konfigurasikan Workerman Masukkan arahan berikut pada baris arahan untuk memasang Workerman: c
