zoukankan      html  css  js  c++  java
  • swoole imi 框架无法使用 curl 的问题

    在 imi 框架里使用 curl 函数,比如curl_init,会提示 Call to undefined function ImiAppApiServerControllercurl_init()

    2021-03-25 23:30:34 [error] Call to undefined function ImiAppApiServerControllercurl_init()
    #0  ImiAppApiServerControllerIndexController->testapi() called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionMiddleware.php:94]
    #1  ImiServerHttpMiddlewareActionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #2  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionWrapMiddleware.php:41]
    #3  ImiServerHttpMiddlewareActionWrapMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #4  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/RouteMiddleware.php:57]
    #5  ImiServerHttpMiddlewareRouteMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #6  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Session/Middleware/HttpSessionMiddleware.php:44]
    #7  ImiServerSessionMiddlewareHttpSessionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #8  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/ApiServer/Middleware/PoweredBy.php:20]
    #9  ImiAppApiServerMiddlewarePoweredBy->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #10  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Dispatcher.php:32]
    #11  ImiServerHttpDispatcher->dispatch(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Listener/BeforeRequest.php:36]
    #12  ImiServerHttpListenerBeforeRequest->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Event/TEvent.php:144]
    #13  ImiServerBase->trigger(request, array, object, ImiServerEventParamRequestEventParam) 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 'YurunUtilHttpRequest' not found”。

    2021-03-25 23:34:23 [error] Class 'YurunUtilHttpRequest' not found
    #0  ImiAppApiServerControllerIndexController->testapi() called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionMiddleware.php:94]
    #1  ImiServerHttpMiddlewareActionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #2  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/ActionWrapMiddleware.php:41]
    #3  ImiServerHttpMiddlewareActionWrapMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #4  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Middleware/RouteMiddleware.php:57]
    #5  ImiServerHttpMiddlewareRouteMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #6  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Session/Middleware/HttpSessionMiddleware.php:44]
    #7  ImiServerSessionMiddlewareHttpSessionMiddleware->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #8  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/ApiServer/Middleware/PoweredBy.php:20]
    #9  ImiAppApiServerMiddlewarePoweredBy->process(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/RequestHandler.php:54]
    #10  ImiServerHttpRequestHandler->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Dispatcher.php:32]
    #11  ImiServerHttpDispatcher->dispatch(object, object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Server/Http/Listener/BeforeRequest.php:36]
    #12  ImiServerHttpListenerBeforeRequest->handle(object) called at [/data/project/www/imi-project-http/vendor/yurunsoft/imi/src/Event/TEvent.php:144]
    #13  ImiServerBase->trigger(request, array, object, ImiServerEventParamRequestEventParam) 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'        =>    ImiLogHandlerFile::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'        =>    ImiLogHandlerFile::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}
    {trace}",
                        'traceFormat'   => '#{index}  {call} called at [{file}:{line}]',
                        'traceMinimum'  =>  true,
                    ],
                ]
            ],
        ],
    

    -EOF-

    微信公众号:PHP和Laravel学习

    公众号二维码图片
  • 相关阅读:
    微信小程序入门
    webpack
    模块化开发(1)
    HTML5表单
    移动端入门
    MySQL
    js面向对象与PHP面向对象总结
    PHP
    Git指令
    Redux
  • 原文地址:https://www.cnblogs.com/imzhi/p/swoole-imi-curl-undefined.html
Copyright © 2011-2022 走看看