config
parent
2a60f7ddbb
commit
65ea78b3c4
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
use support\Request;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'host' => getenv('APP_HOST'),
|
||||||
|
'debug' => getenv('DEBUG'),
|
||||||
|
'error_reporting' => E_ALL,
|
||||||
|
'default_timezone' => 'Asia/Shanghai',
|
||||||
|
'request_class' => Request::class,
|
||||||
|
'public_path' => base_path() . DIRECTORY_SEPARATOR . 'public',
|
||||||
|
'runtime_path' => base_path(false) . DIRECTORY_SEPARATOR . 'runtime',
|
||||||
|
'controller_suffix' => 'Controller',
|
||||||
|
'controller_reuse' => false,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'files' => [
|
||||||
|
base_path() . '/app/functions.php',
|
||||||
|
base_path() . '/support/Request.php',
|
||||||
|
base_path() . '/support/Response.php',
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
support\bootstrap\Session::class,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'default' => 'redis',
|
||||||
|
'stores' => [
|
||||||
|
'file' => [
|
||||||
|
'driver' => 'file',
|
||||||
|
'path' => runtime_path('cache')
|
||||||
|
],
|
||||||
|
'redis' => [
|
||||||
|
'driver' => 'redis',
|
||||||
|
'connection' => 'default'
|
||||||
|
],
|
||||||
|
'array' => [
|
||||||
|
'driver' => 'array'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return new Webman\Container;
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'default' => 'mysql',
|
||||||
|
'connections' => [
|
||||||
|
'mysql' => [
|
||||||
|
'driver' => 'mysql',
|
||||||
|
'host' => getenv('DB_HOST'),
|
||||||
|
'port' => getenv('DB_PORT'),
|
||||||
|
'database' => getenv('DB_NAME'),
|
||||||
|
'username' => getenv('DB_USER'),
|
||||||
|
'password' => getenv('DB_PASSWORD'),
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
'collation' => 'utf8mb4_general_ci',
|
||||||
|
'prefix' => getenv('DB_PREFIX'),
|
||||||
|
'strict' => true,
|
||||||
|
'engine' => null,
|
||||||
|
'options' => [
|
||||||
|
PDO::ATTR_EMULATE_PREPARES => false, // Must be false for Swoole and Swow drivers.
|
||||||
|
],
|
||||||
|
'pool' => [
|
||||||
|
'max_connections' => 5,
|
||||||
|
'min_connections' => 1,
|
||||||
|
'wait_timeout' => 3,
|
||||||
|
'idle_timeout' => 60,
|
||||||
|
'heartbeat_interval' => 50,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [];
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'' => support\exception\Handler::class,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'default' => [
|
||||||
|
'handlers' => [
|
||||||
|
[
|
||||||
|
'class' => Monolog\Handler\RotatingFileHandler::class,
|
||||||
|
'constructor' => [
|
||||||
|
runtime_path() . '/logs/webman.log',
|
||||||
|
7, //$maxFiles
|
||||||
|
Monolog\Logger::DEBUG,
|
||||||
|
],
|
||||||
|
'formatter' => [
|
||||||
|
'class' => Monolog\Formatter\LineFormatter::class,
|
||||||
|
'constructor' => [null, 'Y-m-d H:i:s', true],
|
||||||
|
],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [];
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'enable' => true,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Symfony\Component\Lock\Store\FlockStore;
|
||||||
|
use Symfony\Component\Lock\Store\RedisStore;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'storage' => 'redis', // file/redis, 建议使用 redis,file 不支持 ttl
|
||||||
|
'storage_configs' => [
|
||||||
|
'file' => [
|
||||||
|
'class' => FlockStore::class,
|
||||||
|
'construct' => [
|
||||||
|
'lockPath' => runtime_path() . '/lock',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'redis' => [
|
||||||
|
'class' => RedisStore::class,
|
||||||
|
'construct' => function() {
|
||||||
|
return [
|
||||||
|
'redis' => \support\Redis::connection('default')->client(),
|
||||||
|
];
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'default_config' => [
|
||||||
|
'ttl' => 300, // 默认锁超时时间
|
||||||
|
'auto_release' => true, // 是否自动释放,建议设置为 true
|
||||||
|
'prefix' => 'lock_', // 锁前缀
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'enable' => true,
|
||||||
|
|
||||||
|
'build_dir' => BASE_PATH . DIRECTORY_SEPARATOR . 'build',
|
||||||
|
|
||||||
|
'phar_filename' => 'webman.phar',
|
||||||
|
|
||||||
|
'bin_filename' => 'webman.bin',
|
||||||
|
|
||||||
|
'signature_algorithm' => Phar::SHA256, //set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.
|
||||||
|
|
||||||
|
'private_key_file' => '', // The file path for certificate or OpenSSL private key file.
|
||||||
|
|
||||||
|
'exclude_pattern' => '#^(?!.*(composer.json|/.github/|/.idea/|/.git/|/.setting/|/runtime/|/vendor-bin/|/build/|/vendor/webman/admin/))(.*)$#',
|
||||||
|
|
||||||
|
'exclude_files' => [
|
||||||
|
'.env', 'LICENSE', 'composer.json', 'composer.lock', 'start.php', 'webman.phar', 'webman.bin'
|
||||||
|
],
|
||||||
|
|
||||||
|
'custom_ini' => '
|
||||||
|
memory_limit = 256M
|
||||||
|
',
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'enable' => true,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
Webman\Event\BootStrap::class,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Webman\Event\EventListCommand;
|
||||||
|
|
||||||
|
return [
|
||||||
|
EventListCommand::class
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'enable' => false,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Webman\GatewayWorker\Gateway;
|
||||||
|
use Webman\GatewayWorker\BusinessWorker;
|
||||||
|
use Webman\GatewayWorker\Register;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'gateway' => [
|
||||||
|
'handler' => Gateway::class,
|
||||||
|
'listen' => 'websocket://127.0.0.1:7272',
|
||||||
|
'count' => 2,
|
||||||
|
'reloadable' => false,
|
||||||
|
'constructor' => ['config' => [
|
||||||
|
'lanIp' => '127.0.0.1',
|
||||||
|
'startPort' => 2300,
|
||||||
|
'pingInterval' => 25,
|
||||||
|
'pingData' => '{"type":"ping"}',
|
||||||
|
'registerAddress' => '127.0.0.1:1236',
|
||||||
|
'onConnect' => function () {
|
||||||
|
},
|
||||||
|
]]
|
||||||
|
],
|
||||||
|
'worker' => [
|
||||||
|
'handler' => BusinessWorker::class,
|
||||||
|
'count' => cpu_count() * 2,
|
||||||
|
'constructor' => ['config' => [
|
||||||
|
'eventHandler' => plugin\webman\gateway\Events::class,
|
||||||
|
'name' => 'ChatBusinessWorker',
|
||||||
|
'registerAddress' => '127.0.0.1:1236',
|
||||||
|
]]
|
||||||
|
],
|
||||||
|
'register' => [
|
||||||
|
'handler' => Register::class,
|
||||||
|
'listen' => 'text://127.0.0.1:1236',
|
||||||
|
'count' => 1, // Must be 1
|
||||||
|
'reloadable' => false,
|
||||||
|
'constructor' => []
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'enable' => false,
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Webman\RedisQueue\Command\MakeConsumerCommand;
|
||||||
|
|
||||||
|
return [
|
||||||
|
MakeConsumerCommand::class
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'default' => [
|
||||||
|
'handlers' => [
|
||||||
|
[
|
||||||
|
'class' => Monolog\Handler\RotatingFileHandler::class,
|
||||||
|
'constructor' => [
|
||||||
|
runtime_path() . '/logs/redis-queue/queue.log',
|
||||||
|
7, //$maxFiles
|
||||||
|
Monolog\Logger::DEBUG,
|
||||||
|
],
|
||||||
|
'formatter' => [
|
||||||
|
'class' => Monolog\Formatter\LineFormatter::class,
|
||||||
|
'constructor' => [null, 'Y-m-d H:i:s', true],
|
||||||
|
],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'consumer' => [
|
||||||
|
'handler' => Webman\RedisQueue\Process\Consumer::class,
|
||||||
|
'count' => 8, // 可以设置多进程同时消费
|
||||||
|
'constructor' => [
|
||||||
|
// 消费者类目录
|
||||||
|
'consumer_dir' => app_path() . '/queue/redis'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'default' => [
|
||||||
|
'host' => 'redis://'.getenv('REDIS_HOST').':'.getenv('REDIS_PORT').'',
|
||||||
|
'options' => [
|
||||||
|
'auth' => getenv('REDIS_PASSWORD'), // 密码,字符串类型,可选参数
|
||||||
|
'db' => getenv('REDIS_DATABASE'), // 数据库
|
||||||
|
'prefix' => '', // key 前缀
|
||||||
|
'max_attempts' => 5, // 消费失败后,重试次数
|
||||||
|
'retry_seconds' => 5, // 重试间隔,单位秒
|
||||||
|
]
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
use support\Log;
|
||||||
|
use support\Request;
|
||||||
|
use app\process\Http;
|
||||||
|
|
||||||
|
global $argv;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'webman' => [
|
||||||
|
'handler' => Http::class,
|
||||||
|
'listen' => 'http://127.0.0.1:8787',
|
||||||
|
'count' => cpu_count() * 4,
|
||||||
|
'user' => '',
|
||||||
|
'group' => '',
|
||||||
|
'reusePort' => false,
|
||||||
|
'eventLoop' => '',
|
||||||
|
'context' => [],
|
||||||
|
'constructor' => [
|
||||||
|
'requestClass' => Request::class,
|
||||||
|
'logger' => Log::channel('default'),
|
||||||
|
'appPath' => app_path(),
|
||||||
|
'publicPath' => public_path()
|
||||||
|
]
|
||||||
|
],
|
||||||
|
// File update detection and automatic reload
|
||||||
|
'monitor' => [
|
||||||
|
'handler' => app\process\Monitor::class,
|
||||||
|
'reloadable' => false,
|
||||||
|
'constructor' => [
|
||||||
|
// Monitor these directories
|
||||||
|
'monitorDir' => array_merge([
|
||||||
|
app_path(),
|
||||||
|
config_path(),
|
||||||
|
base_path() . '/process',
|
||||||
|
base_path() . '/support',
|
||||||
|
base_path() . '/resource',
|
||||||
|
base_path() . '/.env',
|
||||||
|
], glob(base_path() . '/plugin/*/app'), glob(base_path() . '/plugin/*/config'), glob(base_path() . '/plugin/*/api')),
|
||||||
|
// Files with these suffixes will be monitored
|
||||||
|
'monitorExtensions' => [
|
||||||
|
'php', 'html', 'htm', 'env'
|
||||||
|
],
|
||||||
|
'options' => [
|
||||||
|
'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/',
|
||||||
|
'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'crontab' => [
|
||||||
|
'handler' => app\process\Schedule::class,
|
||||||
|
],
|
||||||
|
// 'websocket' => [
|
||||||
|
// 'handler' => app\process\Websocket::class,
|
||||||
|
// 'listen' => 'websocket://127.0.0.1:8788',
|
||||||
|
// 'count' => 1
|
||||||
|
// ]
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'default' => [
|
||||||
|
'password' => getenv('REDIS_PASSWORD'),
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_PORT'),
|
||||||
|
'database' => getenv('REDIS_DATABASE'),
|
||||||
|
'pool' => [
|
||||||
|
'max_connections' => 5,
|
||||||
|
'min_connections' => 1,
|
||||||
|
'wait_timeout' => 3,
|
||||||
|
'idle_timeout' => 60,
|
||||||
|
'heartbeat_interval' => 50,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
use app\controller\IndexController;
|
||||||
|
use app\controller\PublicController;
|
||||||
|
use Webman\Route;
|
||||||
|
|
||||||
|
//首页
|
||||||
|
Route::group('/index', function () {
|
||||||
|
Route::get('/options', [IndexController::class, 'getOptions']);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//新闻资讯
|
||||||
|
Route::group('/article', function () {
|
||||||
|
Route::get('/list', [PublicController::class, 'articleList']);
|
||||||
|
Route::get('/detail', [PublicController::class, 'articleDetail']);
|
||||||
|
});
|
||||||
|
//畅销产品
|
||||||
|
Route::group("/product", function () {
|
||||||
|
Route::get("/cate", [IndexController::class, 'getProductCate']);
|
||||||
|
Route::get("/list", [IndexController::class, 'getProductList']);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'event_loop' => '',
|
||||||
|
'stop_timeout' => 2,
|
||||||
|
'pid_file' => runtime_path() . '/webman.pid',
|
||||||
|
'status_file' => runtime_path() . '/webman.status',
|
||||||
|
'stdout_file' => runtime_path() . '/logs/stdout.log',
|
||||||
|
'log_file' => runtime_path() . '/logs/workerman.log',
|
||||||
|
'max_package_size' => 10 * 1024 * 1024
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Webman\Session\FileSessionHandler;
|
||||||
|
use Webman\Session\RedisSessionHandler;
|
||||||
|
use Webman\Session\RedisClusterSessionHandler;
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'type' => 'redis', // or redis or redis_cluster
|
||||||
|
|
||||||
|
'handler' => FileSessionHandler::class,
|
||||||
|
|
||||||
|
'config' => [
|
||||||
|
'file' => [
|
||||||
|
'save_path' => runtime_path() . '/sessions',
|
||||||
|
],
|
||||||
|
|
||||||
|
'redis' => [
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_PORT'),
|
||||||
|
'auth' => getenv('REDIS_PASSWORD'),
|
||||||
|
'timeout' => 2,
|
||||||
|
'database' => getenv('REDIS_DATABASE'),
|
||||||
|
'prefix' => 'redis_session_',
|
||||||
|
],
|
||||||
|
'redis_cluster' => [
|
||||||
|
'host' => ['127.0.0.1:7000', '127.0.0.1:7001', '127.0.0.1:7001'],
|
||||||
|
'timeout' => 2,
|
||||||
|
'auth' => '',
|
||||||
|
'prefix' => 'redis_session_',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
'session_name' => 'PHPSID',
|
||||||
|
|
||||||
|
'auto_update_timestamp' => false,
|
||||||
|
|
||||||
|
'lifetime' => 7*24*60*60,
|
||||||
|
|
||||||
|
'cookie_lifetime' => 365*24*60*60,
|
||||||
|
|
||||||
|
'cookie_path' => '/',
|
||||||
|
|
||||||
|
'domain' => '',
|
||||||
|
|
||||||
|
'http_only' => true,
|
||||||
|
|
||||||
|
'secure' => false,
|
||||||
|
|
||||||
|
'same_site' => '',
|
||||||
|
|
||||||
|
'gc_probability' => [1, 1000],
|
||||||
|
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static file settings
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
'enable' => true,
|
||||||
|
'middleware' => [ // Static file Middleware
|
||||||
|
//app\middleware\StaticFile::class,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Multilingual configuration
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
// Default language
|
||||||
|
'locale' => 'zh_CN',
|
||||||
|
// Fallback language
|
||||||
|
'fallback_locale' => ['zh_CN', 'en'],
|
||||||
|
// Folder where language files are stored
|
||||||
|
'path' => base_path() . '/resource/translations',
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
use support\view\Raw;
|
||||||
|
use support\view\Twig;
|
||||||
|
use support\view\Blade;
|
||||||
|
use support\view\ThinkPHP;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'handler' => Raw::class
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace support;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Request
|
||||||
|
* @package support
|
||||||
|
*/
|
||||||
|
class Request extends \Webman\Http\Request
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace support;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Response
|
||||||
|
* @package support
|
||||||
|
*/
|
||||||
|
class Response extends \Webman\Http\Response
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,139 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is part of webman.
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @author walkor<walkor@workerman.net>
|
||||||
|
* @copyright walkor<walkor@workerman.net>
|
||||||
|
* @link http://www.workerman.net/
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Dotenv\Dotenv;
|
||||||
|
use support\Log;
|
||||||
|
use Webman\Bootstrap;
|
||||||
|
use Webman\Config;
|
||||||
|
use Webman\Middleware;
|
||||||
|
use Webman\Route;
|
||||||
|
use Webman\Util;
|
||||||
|
use Workerman\Events\Select;
|
||||||
|
use Workerman\Worker;
|
||||||
|
|
||||||
|
$worker = $worker ?? null;
|
||||||
|
|
||||||
|
if (empty(Worker::$eventLoopClass)) {
|
||||||
|
Worker::$eventLoopClass = Select::class;
|
||||||
|
}
|
||||||
|
|
||||||
|
set_error_handler(function ($level, $message, $file = '', $line = 0) {
|
||||||
|
if (error_reporting() & $level) {
|
||||||
|
throw new ErrorException($message, 0, $level, $file, $line);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if ($worker) {
|
||||||
|
register_shutdown_function(function ($startTime) {
|
||||||
|
if (time() - $startTime <= 0.1) {
|
||||||
|
sleep(1);
|
||||||
|
}
|
||||||
|
}, time());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (class_exists('Dotenv\Dotenv') && file_exists(base_path(false) . '/.env')) {
|
||||||
|
if (method_exists('Dotenv\Dotenv', 'createUnsafeMutable')) {
|
||||||
|
Dotenv::createUnsafeMutable(base_path(false))->load();
|
||||||
|
} else {
|
||||||
|
Dotenv::createMutable(base_path(false))->load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::clear();
|
||||||
|
support\App::loadAllConfig(['route']);
|
||||||
|
if ($timezone = config('app.default_timezone')) {
|
||||||
|
date_default_timezone_set($timezone);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (config('autoload.files', []) as $file) {
|
||||||
|
include_once $file;
|
||||||
|
}
|
||||||
|
foreach (config('plugin', []) as $firm => $projects) {
|
||||||
|
foreach ($projects as $name => $project) {
|
||||||
|
if (!is_array($project)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
foreach ($project['autoload']['files'] ?? [] as $file) {
|
||||||
|
include_once $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($projects['autoload']['files'] ?? [] as $file) {
|
||||||
|
include_once $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Middleware::load(config('middleware', []));
|
||||||
|
foreach (config('plugin', []) as $firm => $projects) {
|
||||||
|
foreach ($projects as $name => $project) {
|
||||||
|
if (!is_array($project) || $name === 'static') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Middleware::load($project['middleware'] ?? []);
|
||||||
|
}
|
||||||
|
Middleware::load($projects['middleware'] ?? [], $firm);
|
||||||
|
if ($staticMiddlewares = config("plugin.$firm.static.middleware")) {
|
||||||
|
Middleware::load(['__static__' => $staticMiddlewares], $firm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Middleware::load(['__static__' => config('static.middleware', [])]);
|
||||||
|
|
||||||
|
foreach (config('bootstrap', []) as $className) {
|
||||||
|
if (!class_exists($className)) {
|
||||||
|
$log = "Warning: Class $className setting in config/bootstrap.php not found\r\n";
|
||||||
|
echo $log;
|
||||||
|
Log::error($log);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/** @var Bootstrap $className */
|
||||||
|
$className::start($worker);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (config('plugin', []) as $firm => $projects) {
|
||||||
|
foreach ($projects as $name => $project) {
|
||||||
|
if (!is_array($project)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
foreach ($project['bootstrap'] ?? [] as $className) {
|
||||||
|
if (!class_exists($className)) {
|
||||||
|
$log = "Warning: Class $className setting in config/plugin/$firm/$name/bootstrap.php not found\r\n";
|
||||||
|
echo $log;
|
||||||
|
Log::error($log);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/** @var Bootstrap $className */
|
||||||
|
$className::start($worker);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($projects['bootstrap'] ?? [] as $className) {
|
||||||
|
/** @var string $className */
|
||||||
|
if (!class_exists($className)) {
|
||||||
|
$log = "Warning: Class $className setting in plugin/$firm/config/bootstrap.php not found\r\n";
|
||||||
|
echo $log;
|
||||||
|
Log::error($log);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/** @var Bootstrap $className */
|
||||||
|
$className::start($worker);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$directory = base_path() . '/plugin';
|
||||||
|
$paths = [config_path()];
|
||||||
|
foreach (Util::scanDir($directory) as $path) {
|
||||||
|
if (is_dir($path = "$path/config")) {
|
||||||
|
$paths[] = $path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Route::load($paths);
|
||||||
|
|
||||||
Loading…
Reference in New Issue