swoole imi 框架无法使用 curl 的问题
在 imi 框架里使用 curl 函数,比如curl_init
,会提示 Call to undefined function ImiApp\ApiServer\Controller\curl_init()
:
2021-03-25 23:30:34 [error] Call to undefined function ImiApp\ApiServer\Controller\curl_init()
#0 ImiApp\ApiServer\Controller\IndexController->testapi() called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionMiddleware.php:94]
#1 Imi\Server\Http\Middleware\ActionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#2 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionWrapMiddleware.php:41]
#3 Imi\Server\Http\Middleware\ActionWrapMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#4 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/RouteMiddleware.php:57]
#5 Imi\Server\Http\Middleware\RouteMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#6 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Session/Middleware/HttpSessionMiddleware.php:44]
#7 Imi\Server\Session\Middleware\HttpSessionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#8 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/ApiServer/Middleware/PoweredBy.php:20]
#9 ImiApp\ApiServer\Middleware\PoweredBy->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#10 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Dispatcher.php:32]
#11 Imi\Server\Http\Dispatcher->dispatch(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Listener/BeforeRequest.php:36]
#12 Imi\Server\Http\Listener\BeforeRequest->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Event/TEvent.php:144]
#13 Imi\Server\Base->trigger(request, array, object, Imi\Server\Event\Param\RequestEventParam) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Server.php:154]
接着在项目里安装了 yurunsoft/yurun-http
:
composer require yurunsoft/yurun-http
使用 yurun-http 里的方法进行 get/post 请求:
$http = HttpRequest::newSession();
$res = $http->get('http://127.0.0.1:8000/api/apitest?id=555');
return $res->json();
此时再通过 imi 框架进行测试,仍旧报错 “Class 'Yurun\Util\HttpRequest' not found”。
2021-03-25 23:34:23 [error] Class 'Yurun\Util\HttpRequest' not found
#0 ImiApp\ApiServer\Controller\IndexController->testapi() called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionMiddleware.php:94]
#1 Imi\Server\Http\Middleware\ActionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#2 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionWrapMiddleware.php:41]
#3 Imi\Server\Http\Middleware\ActionWrapMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#4 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/RouteMiddleware.php:57]
#5 Imi\Server\Http\Middleware\RouteMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#6 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Session/Middleware/HttpSessionMiddleware.php:44]
#7 Imi\Server\Session\Middleware\HttpSessionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#8 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/ApiServer/Middleware/PoweredBy.php:20]
#9 ImiApp\ApiServer\Middleware\PoweredBy->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
#10 Imi\Server\Http\RequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Dispatcher.php:32]
#11 Imi\Server\Http\Dispatcher->dispatch(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Listener/BeforeRequest.php:36]
#12 Imi\Server\Http\Listener\BeforeRequest->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Event/TEvent.php:144]
#13 Imi\Server\Base->trigger(request, array, object, Imi\Server\Event\Param\RequestEventParam) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Server.php:154]
重新启动 imi 后台进程,即可使用 HttpRequest
类来进行 http 请求!
PS
imi 框架的日志配置在 config/beans.php
:
'Logger' => [
'exHandlers' => [
// info 级别日志不输出trace
[
'class' => \Imi\Log\Handler\File::class,
'options' => [
'levels' => [LogLevel::INFO],
'fileName' => dirname(__DIR__) . '/.runtime/logs/{Y}-{m}-{d}.log',
'format' => "{Y}-{m}-{d} {H}:{i}:{s} [{level}] {message}",
],
],
// 指定级别日志输出trace
[
'class' => \Imi\Log\Handler\File::class,
'options' => [
'levels' => [
LogLevel::ALERT,
LogLevel::CRITICAL,
LogLevel::DEBUG,
LogLevel::EMERGENCY,
LogLevel::ERROR,
LogLevel::NOTICE,
LogLevel::WARNING,
],
'fileName' => dirname(__DIR__) . '/.runtime/logs/{Y}-{m}-{d}.log',
'format' => "{Y}-{m}-{d} {H}:{i}:{s} [{level}] {message}\n{trace}",
'traceFormat' => '#{index} {call} called at [{file}:{line}]',
'traceMinimum' => true,
],
]
],
],
-EOF-
微信扫码给我赞赏
微信公众号:layui交流