初始化
This commit is contained in:
1
tests/stub/.env
Normal file
1
tests/stub/.env
Normal file
@@ -0,0 +1 @@
|
||||
APP_DEBUG=true
|
||||
20
tests/stub/app/controller/Index.php
Normal file
20
tests/stub/app/controller/Index.php
Normal 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());
|
||||
}
|
||||
}
|
||||
4
tests/stub/config/app.php
Normal file
4
tests/stub/config/app.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
return [
|
||||
'error_message' => 'error',
|
||||
];
|
||||
9
tests/stub/config/cache.php
Normal file
9
tests/stub/config/cache.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
return [
|
||||
'default' => 'file',
|
||||
'stores' => [
|
||||
'file' => [
|
||||
'type' => 'File',
|
||||
],
|
||||
]
|
||||
];
|
||||
40
tests/stub/config/queue.php
Normal file
40
tests/stub/config/queue.php
Normal 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',
|
||||
],
|
||||
];
|
||||
45
tests/stub/config/worker.php
Normal file
45
tests/stub/config/worker.php
Normal 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' => [],
|
||||
],
|
||||
];
|
||||
1
tests/stub/public/asset.txt
Normal file
1
tests/stub/public/asset.txt
Normal file
@@ -0,0 +1 @@
|
||||
Asset
|
||||
51
tests/stub/route/app.php
Normal file
51
tests/stub/route/app.php
Normal 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
2
tests/stub/runtime/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
12
tests/stub/think
Normal file
12
tests/stub/think
Normal 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();
|
||||
Reference in New Issue
Block a user