初始化

This commit is contained in:
2026-01-06 13:37:07 +08:00
parent c3435595fe
commit 00d7a381aa
70 changed files with 3913 additions and 1 deletions

1
tests/stub/.env Normal file
View File

@@ -0,0 +1 @@
APP_DEBUG=true

View File

@@ -0,0 +1,20 @@
<?php
namespace app\controller;
use think\facade\Cookie;
use think\Request;
class Index
{
public function test()
{
Cookie::set('name', 'think');
return 'test';
}
public function json(Request $request)
{
return json($request->post());
}
}

View File

@@ -0,0 +1,4 @@
<?php
return [
'error_message' => 'error',
];

View File

@@ -0,0 +1,9 @@
<?php
return [
'default' => 'file',
'stores' => [
'file' => [
'type' => 'File',
],
]
];

View File

@@ -0,0 +1,40 @@
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: yunwuxin <448901948@qq.com>
// +----------------------------------------------------------------------
return [
'default' => 'redis',
'connections' => [
'sync' => [
'type' => 'sync',
],
'database' => [
'type' => 'database',
'queue' => 'default',
'table' => 'jobs',
'connection' => null,
],
'redis' => [
'type' => 'redis',
'queue' => 'default',
'host' => env('REDIS_HOST', 'redis'),
'port' => env('REDIS_PORT', 6379),
'password' => '',
'select' => 0,
'timeout' => 0,
'persistent' => true,
'retry_after' => 600,
],
],
'failed' => [
'type' => 'none',
'table' => 'failed_jobs',
],
];

View File

@@ -0,0 +1,45 @@
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\worker\websocket\Handler;
return [
'http' => [
'enable' => env('HTTP_ENABLE', true),
'host' => '0.0.0.0',
'port' => 8080,
'worker_num' => 2,
'options' => [],
],
'websocket' => [
'enable' => env('WEBSOCKET_ENABLE', true),
'handler' => Handler::class,
'ping_interval' => 25000,
'ping_timeout' => 60000,
],
//队列
'queue' => [
'enable' => env('QUEUE_ENABLE', true),
'workers' => [
'default' => [],
],
],
//共享数据
'conduit' => [
'type' => 'socket',
],
'hot_update' => [
'enable' => env('HOT_ENABLE', true),
'name' => ['*.php'],
'include' => [app_path(), config_path(), root_path('route')],
'exclude' => [],
],
];

View File

@@ -0,0 +1 @@
Asset

51
tests/stub/route/app.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
use think\facade\Route;
Route::get('/', function () {
return 'hello world';
});
Route::put('/', function () {
return 'put';
});
Route::delete('/', function () {
return 'delete';
});
Route::get('/sse', function () {
$generator = function () {
foreach (range(0, 9) as $event) {
yield 'data: ' . json_encode($event) . "\n\n";
}
yield "data: [DONE]\n\n";
};
$response = new \think\worker\response\Iterator($generator());
return $response->header([
'Content-Type' => 'text/event-stream',
'Cache-Control' => 'no-cache, must-revalidate',
]);
});
Route::get('/websocket', function () {
return (new \think\worker\response\Websocket())
->onOpen(function (\think\worker\Websocket $websocket) {
$websocket->join('foo');
})
->onMessage(function (\think\worker\Websocket $websocket, \think\worker\websocket\Frame $frame) {
$websocket->to('foo')->push($frame->data);
});
});
Route::get('test', 'index/test');
Route::post('json', 'index/json');
Route::get('static/:path', function (string $path) {
$filename = public_path() . $path;
return new \think\worker\response\File($filename);
})->pattern(['path' => '.*\.\w+$']);

2
tests/stub/runtime/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!.gitignore

12
tests/stub/think Normal file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env php
<?php
use think\App;
require __DIR__ . '/../../vendor/autoload.php';
$app = new App(__DIR__);
$app->console->addCommands([\think\worker\command\Server::class]);
$app->console->run();