21
config/autoload/annotations.php
Normal file
21
config/autoload/annotations.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'scan' => [
|
||||
'paths' => [
|
||||
BASE_PATH . '/app',
|
||||
],
|
||||
'ignore_annotations' => [
|
||||
'mixin',
|
||||
],
|
||||
],
|
||||
];
|
||||
13
config/autoload/aspects.php
Normal file
13
config/autoload/aspects.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
];
|
||||
28
config/autoload/async_queue.php
Normal file
28
config/autoload/async_queue.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'default' => [
|
||||
'driver' => \Hyperf\AsyncQueue\Driver\RedisDriver::class,
|
||||
'redis' => [
|
||||
'pool' => 'default',
|
||||
],
|
||||
'channel' => '{queue}',
|
||||
'timeout' => 2,
|
||||
'retry_seconds' => 5,
|
||||
'handle_timeout' => 10,
|
||||
'processes' => 1,
|
||||
'concurrent' => [
|
||||
'limit' => 10,
|
||||
],
|
||||
'max_messages' => 0,
|
||||
],
|
||||
];
|
||||
183
config/autoload/auth.php
Normal file
183
config/autoload/auth.php
Normal file
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of qbhy/hyperf-auth.
|
||||
*
|
||||
* @link https://github.com/qbhy/hyperf-auth
|
||||
* @document https://github.com/qbhy/hyperf-auth/blob/master/README.md
|
||||
* @contact qbhy0715@qq.com
|
||||
* @license https://github.com/qbhy/hyperf-auth/blob/master/LICENSE
|
||||
*/
|
||||
use Qbhy\SimpleJwt\Encoders;
|
||||
use Qbhy\SimpleJwt\EncryptAdapters as Encrypter;
|
||||
use function Hyperf\Support\env;
|
||||
use function Hyperf\Support\make;
|
||||
|
||||
return [
|
||||
'default' => [
|
||||
'guard' => 'jwt',
|
||||
'provider' => 'users',
|
||||
],
|
||||
'guards' => [
|
||||
'sso' => [
|
||||
// 支持的设备,env配置时用英文逗号隔开
|
||||
'clients' => explode(',', env('AUTH_SSO_CLIENTS', 'pc')),
|
||||
|
||||
// hyperf/redis 实例
|
||||
'redis' => function () {
|
||||
return make(\Hyperf\Redis\Redis::class);
|
||||
},
|
||||
|
||||
// 自定义 redis key,必须包含 {uid},{uid} 会被替换成用户ID
|
||||
'redis_key' => 'u:token:{uid}',
|
||||
|
||||
'driver' => Qbhy\HyperfAuth\Guard\SsoGuard::class,
|
||||
'provider' => 'users',
|
||||
|
||||
/*
|
||||
* 以下是 simple-jwt 配置
|
||||
* 必填
|
||||
* jwt 服务端身份标识
|
||||
*/
|
||||
'secret' => env('SSO_JWT_SECRET'),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* jwt 默认头部token使用的字段
|
||||
*/
|
||||
'header_name' => env('JWT_HEADER_NAME', 'Authorization'),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* jwt 生命周期,单位秒,默认一天
|
||||
*/
|
||||
'ttl' => (int) env('SIMPLE_JWT_TTL', 60 * 60 * 24),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 允许过期多久以内的 token 进行刷新,单位秒,默认一周
|
||||
*/
|
||||
'refresh_ttl' => (int) env('SIMPLE_JWT_REFRESH_TTL', 60 * 60 * 24 * 7),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 默认使用的加密类
|
||||
*/
|
||||
'default' => Encrypter\SHA1Encrypter::class,
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 加密类必须实现 Qbhy\SimpleJwt\Interfaces\Encrypter 接口
|
||||
*/
|
||||
'drivers' => [
|
||||
Encrypter\PasswordHashEncrypter::alg() => Encrypter\PasswordHashEncrypter::class,
|
||||
Encrypter\CryptEncrypter::alg() => Encrypter\CryptEncrypter::class,
|
||||
Encrypter\SHA1Encrypter::alg() => Encrypter\SHA1Encrypter::class,
|
||||
Encrypter\Md5Encrypter::alg() => Encrypter\Md5Encrypter::class,
|
||||
],
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 编码类
|
||||
*/
|
||||
'encoder' => new Encoders\Base64UrlSafeEncoder(),
|
||||
// 'encoder' => new Encoders\Base64Encoder(),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 缓存类
|
||||
*/
|
||||
'cache' => new \Doctrine\Common\Cache\FilesystemCache(sys_get_temp_dir()),
|
||||
// 如果需要分布式部署,请选择 redis 或者其他支持分布式的缓存驱动
|
||||
// 'cache' => function () {
|
||||
// return make(\Qbhy\HyperfAuth\HyperfRedisCache::class);
|
||||
// },
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 缓存前缀
|
||||
*/
|
||||
'prefix' => env('SIMPLE_JWT_PREFIX', 'default'),
|
||||
],
|
||||
'jwt' => [
|
||||
'driver' => Qbhy\HyperfAuth\Guard\JwtGuard::class,
|
||||
'provider' => 'users',
|
||||
|
||||
/*
|
||||
* 以下是 simple-jwt 配置
|
||||
* 必填
|
||||
* jwt 服务端身份标识
|
||||
*/
|
||||
'secret' => env('SIMPLE_JWT_SECRET'),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* jwt 默认头部token使用的字段
|
||||
*/
|
||||
'header_name' => env('JWT_HEADER_NAME', 'Authorization'),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* jwt 生命周期,单位秒,默认一天
|
||||
*/
|
||||
'ttl' => (int) env('SIMPLE_JWT_TTL', 60 * 60 * 24),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 允许过期多久以内的 token 进行刷新,单位秒,默认一周
|
||||
*/
|
||||
'refresh_ttl' => (int) env('SIMPLE_JWT_REFRESH_TTL', 60 * 60 * 24 * 7),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 默认使用的加密类
|
||||
*/
|
||||
'default' => Encrypter\SHA1Encrypter::class,
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 加密类必须实现 Qbhy\SimpleJwt\Interfaces\Encrypter 接口
|
||||
*/
|
||||
'drivers' => [
|
||||
Encrypter\PasswordHashEncrypter::alg() => Encrypter\PasswordHashEncrypter::class,
|
||||
Encrypter\CryptEncrypter::alg() => Encrypter\CryptEncrypter::class,
|
||||
Encrypter\SHA1Encrypter::alg() => Encrypter\SHA1Encrypter::class,
|
||||
Encrypter\Md5Encrypter::alg() => Encrypter\Md5Encrypter::class,
|
||||
],
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 编码类
|
||||
*/
|
||||
'encoder' => new Encoders\Base64UrlSafeEncoder(),
|
||||
// 'encoder' => new Encoders\Base64Encoder(),
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 缓存类
|
||||
*/
|
||||
'cache' => new \Doctrine\Common\Cache\FilesystemCache(sys_get_temp_dir()),
|
||||
// 如果需要分布式部署,请选择 redis 或者其他支持分布式的缓存驱动
|
||||
// 'cache' => function () {
|
||||
// return make(\Qbhy\HyperfAuth\HyperfRedisCache::class);
|
||||
// },
|
||||
|
||||
/*
|
||||
* 可选配置
|
||||
* 缓存前缀
|
||||
*/
|
||||
'prefix' => env('SIMPLE_JWT_PREFIX', 'default'),
|
||||
],
|
||||
'session' => [
|
||||
'driver' => Qbhy\HyperfAuth\Guard\SessionGuard::class,
|
||||
'provider' => 'users',
|
||||
],
|
||||
],
|
||||
'providers' => [
|
||||
'users' => [
|
||||
'driver' => \Qbhy\HyperfAuth\Provider\EloquentProvider::class,
|
||||
'model' => App\Model\User::class, // 需要实现 Qbhy\HyperfAuth\Authenticatable 接口
|
||||
],
|
||||
],
|
||||
];
|
||||
19
config/autoload/cache.php
Normal file
19
config/autoload/cache.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'default' => [
|
||||
'driver' => Hyperf\Cache\Driver\RedisDriver::class,
|
||||
'packer' => Hyperf\Codec\Packer\PhpSerializerPacker::class,
|
||||
'prefix' => 'c:',
|
||||
'skip_cache_results' => [],
|
||||
],
|
||||
];
|
||||
13
config/autoload/commands.php
Normal file
13
config/autoload/commands.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
];
|
||||
51
config/autoload/databases.php
Normal file
51
config/autoload/databases.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
use function Hyperf\Support\env;
|
||||
|
||||
return [
|
||||
'default' => [
|
||||
'driver' => env('DB_DRIVER', 'mysql'),
|
||||
'host' => env('DB_HOST', 'localhost'),
|
||||
'port' => env('DB_PORT', 3306),
|
||||
'database' => env('DB_DATABASE', 'hyperf'),
|
||||
'username' => env('DB_USERNAME', 'root'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'charset' => env('DB_CHARSET', 'utf8mb4'),
|
||||
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
|
||||
'prefix' => env('DB_PREFIX', ''),
|
||||
'pool' => [
|
||||
'min_connections' => 1,
|
||||
'max_connections' => 10,
|
||||
'connect_timeout' => 10.0,
|
||||
'wait_timeout' => 3.0,
|
||||
'heartbeat' => -1,
|
||||
'max_idle_time' => (float) env('DB_MAX_IDLE_TIME', 60),
|
||||
],
|
||||
'cache' => [
|
||||
'handler' => Hyperf\ModelCache\Handler\RedisHandler::class,
|
||||
'cache_key' => '{mc:%s:m:%s}:%s:%s',
|
||||
'prefix' => 'default',
|
||||
'ttl' => 3600 * 24,
|
||||
'empty_model_ttl' => 600,
|
||||
'load_script' => true,
|
||||
],
|
||||
'commands' => [
|
||||
'gen:model' => [
|
||||
'path' => 'app/Model',
|
||||
'force_casts' => true,
|
||||
'inheritance' => 'Model',
|
||||
'uses' => '',
|
||||
'table_mapping' => [],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
13
config/autoload/dependencies.php
Normal file
13
config/autoload/dependencies.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
];
|
||||
44
config/autoload/devtool.php
Normal file
44
config/autoload/devtool.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'generator' => [
|
||||
'amqp' => [
|
||||
'consumer' => [
|
||||
'namespace' => 'App\\Amqp\\Consumer',
|
||||
],
|
||||
'producer' => [
|
||||
'namespace' => 'App\\Amqp\\Producer',
|
||||
],
|
||||
],
|
||||
'aspect' => [
|
||||
'namespace' => 'App\\Aspect',
|
||||
],
|
||||
'command' => [
|
||||
'namespace' => 'App\\Command',
|
||||
],
|
||||
'controller' => [
|
||||
'namespace' => 'App\\Controller',
|
||||
],
|
||||
'job' => [
|
||||
'namespace' => 'App\\Job',
|
||||
],
|
||||
'listener' => [
|
||||
'namespace' => 'App\\Listener',
|
||||
],
|
||||
'middleware' => [
|
||||
'namespace' => 'App\\Middleware',
|
||||
],
|
||||
'Process' => [
|
||||
'namespace' => 'App\\Processes',
|
||||
],
|
||||
],
|
||||
];
|
||||
19
config/autoload/exceptions.php
Normal file
19
config/autoload/exceptions.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'handler' => [
|
||||
'http' => [
|
||||
Hyperf\HttpServer\Exception\Handler\HttpExceptionHandler::class,
|
||||
App\Exception\Handler\AppExceptionHandler::class,
|
||||
],
|
||||
],
|
||||
];
|
||||
15
config/autoload/listeners.php
Normal file
15
config/autoload/listeners.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler::class,
|
||||
Hyperf\Command\Listener\FailToHandleListener::class,
|
||||
];
|
||||
30
config/autoload/logger.php
Normal file
30
config/autoload/logger.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'default' => [
|
||||
'handler' => [
|
||||
'class' => Monolog\Handler\StreamHandler::class,
|
||||
'constructor' => [
|
||||
'stream' => BASE_PATH . '/runtime/logs/hyperf.log',
|
||||
'level' => Monolog\Logger::DEBUG,
|
||||
],
|
||||
],
|
||||
'formatter' => [
|
||||
'class' => Monolog\Formatter\LineFormatter::class,
|
||||
'constructor' => [
|
||||
'format' => null,
|
||||
'dateFormat' => 'Y-m-d H:i:s',
|
||||
'allowInlineLineBreaks' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
15
config/autoload/middlewares.php
Normal file
15
config/autoload/middlewares.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
'http' => [
|
||||
],
|
||||
];
|
||||
13
config/autoload/processes.php
Normal file
13
config/autoload/processes.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
return [
|
||||
];
|
||||
29
config/autoload/redis.php
Normal file
29
config/autoload/redis.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
use function Hyperf\Support\env;
|
||||
|
||||
return [
|
||||
'default' => [
|
||||
'host' => env('REDIS_HOST', 'localhost'),
|
||||
'auth' => env('REDIS_AUTH', null),
|
||||
'port' => (int) env('REDIS_PORT', 6379),
|
||||
'db' => (int) env('REDIS_DB', 0),
|
||||
'pool' => [
|
||||
'min_connections' => 1,
|
||||
'max_connections' => 10,
|
||||
'connect_timeout' => 10.0,
|
||||
'wait_timeout' => 3.0,
|
||||
'heartbeat' => -1,
|
||||
'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
|
||||
],
|
||||
],
|
||||
];
|
||||
50
config/autoload/server.php
Normal file
50
config/autoload/server.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
use Hyperf\Server\Event;
|
||||
use Hyperf\Server\Server;
|
||||
use Swoole\Constant;
|
||||
|
||||
return [
|
||||
'mode' => SWOOLE_PROCESS,
|
||||
'servers' => [
|
||||
[
|
||||
'name' => 'http',
|
||||
'type' => Server::SERVER_HTTP,
|
||||
'host' => '0.0.0.0',
|
||||
'port' => 9501,
|
||||
'sock_type' => SWOOLE_SOCK_TCP,
|
||||
'callbacks' => [
|
||||
Event::ON_REQUEST => [Hyperf\HttpServer\Server::class, 'onRequest'],
|
||||
],
|
||||
'options' => [
|
||||
// Whether to enable request lifecycle event
|
||||
'enable_request_lifecycle' => false,
|
||||
],
|
||||
],
|
||||
],
|
||||
'settings' => [
|
||||
Constant::OPTION_ENABLE_COROUTINE => true,
|
||||
Constant::OPTION_WORKER_NUM => swoole_cpu_num(),
|
||||
Constant::OPTION_PID_FILE => BASE_PATH . '/runtime/hyperf.pid',
|
||||
Constant::OPTION_OPEN_TCP_NODELAY => true,
|
||||
Constant::OPTION_MAX_COROUTINE => 100000,
|
||||
Constant::OPTION_OPEN_HTTP2_PROTOCOL => true,
|
||||
Constant::OPTION_MAX_REQUEST => 100000,
|
||||
Constant::OPTION_SOCKET_BUFFER_SIZE => 2 * 1024 * 1024,
|
||||
Constant::OPTION_BUFFER_OUTPUT_SIZE => 2 * 1024 * 1024,
|
||||
],
|
||||
'callbacks' => [
|
||||
Event::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'],
|
||||
Event::ON_PIPE_MESSAGE => [Hyperf\Framework\Bootstrap\PipeMessageCallback::class, 'onPipeMessage'],
|
||||
Event::ON_WORKER_EXIT => [Hyperf\Framework\Bootstrap\WorkerExitCallback::class, 'onWorkerExit'],
|
||||
],
|
||||
];
|
||||
33
config/config.php
Normal file
33
config/config.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
use Hyperf\Contract\StdoutLoggerInterface;
|
||||
use Psr\Log\LogLevel;
|
||||
|
||||
use function Hyperf\Support\env;
|
||||
|
||||
return [
|
||||
'app_name' => env('APP_NAME', 'skeleton'),
|
||||
'app_env' => env('APP_ENV', 'dev'),
|
||||
'scan_cacheable' => env('SCAN_CACHEABLE', false),
|
||||
StdoutLoggerInterface::class => [
|
||||
'log_level' => [
|
||||
LogLevel::ALERT,
|
||||
LogLevel::CRITICAL,
|
||||
// LogLevel::DEBUG,
|
||||
LogLevel::EMERGENCY,
|
||||
LogLevel::ERROR,
|
||||
LogLevel::INFO,
|
||||
LogLevel::NOTICE,
|
||||
LogLevel::WARNING,
|
||||
],
|
||||
],
|
||||
];
|
||||
21
config/container.php
Normal file
21
config/container.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* Initialize a dependency injection container that implemented PSR-11 and return the container.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
use Hyperf\Context\ApplicationContext;
|
||||
use Hyperf\Di\Container;
|
||||
use Hyperf\Di\Definition\DefinitionSourceFactory;
|
||||
|
||||
$container = new Container((new DefinitionSourceFactory())());
|
||||
|
||||
return ApplicationContext::setContainer($container);
|
||||
18
config/routes.php
Normal file
18
config/routes.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
use Hyperf\HttpServer\Router\Router;
|
||||
|
||||
Router::addRoute(['GET', 'POST', 'HEAD'], '/', 'App\Controller\IndexController@index');
|
||||
|
||||
Router::get('/favicon.ico', function () {
|
||||
return '';
|
||||
});
|
||||
Reference in New Issue
Block a user