Giter Site home page Giter Site logo

Comments (7)

sjozsef avatar sjozsef commented on August 22, 2024 1

The problem is that PHP \Error objects gets passed to \Slim\Handlers\ApiError::__invoke() method, wich is assuming \Exceptions instead of \Errors.

To reproduce that bug, try to create a todo with invalid json format:

curl "https://192.168.50.52/todos" --request POST --include --insecure --header "Authorization: Bearer $TOKEN" --header "Content-Type: application/json" --data "{ 'title': 'Test the API', 'order': 10 }"

Hotfix:

Comment out that lines in config/handlers.php:

$container["phpErrorHandler"] = function ($container) {
    return $container["errorHandler"];
};

If you pass an Accept: application/json header to your requests, you'll get simple json errors via the built-in Slim error handler.

If you want to handle PHP Errors as API Problems (like ApiError handler does), you have to implement a new error handler based on the built-in Slim PhpError class.

from slim-api-skeleton.

tuupola avatar tuupola commented on August 22, 2024 1

Should be fixed with 9f810e0.

from slim-api-skeleton.

ganesh35 avatar ganesh35 commented on August 22, 2024

Please help.

As long as no errors in the program everything works fine. But when there is an error it shows this message and not handling it properly.

Seems like the error handling is throwing errors. Need a quick fix.


Fatal error: Uncaught TypeError: Argument 3 passed to Slim\Handlers\ApiError::__invoke() must be an instance of Exception, instance of TypeError given in \src\Slim\Handlers\ApiError.php:37 Stack trace: #0 [internal function]: Slim\Handlers\ApiError->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(TypeError)) #1 \vendor\slim\slim\Slim\App.php(671): call_user_func_array(Object(Slim\Handlers\ApiError), Array) #2 \vendor\slim\slim\Slim\App.php(374): Slim\App->handlePhpError(Object(TypeError), Object(Slim\Http\Request), Object(Slim\Http\Response)) #3 \vendor\slim\slim\Slim\App.php(295): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response)) #4 \app.php(78): Slim\App->run() #5 \public\index.php(3): require('C:\\xampp\\htdocs...') #6 {main} thrown in src\Slim\Handlers\ApiError.php on line 37

from slim-api-skeleton.

tuupola avatar tuupola commented on August 22, 2024

@pdrappo are you running PHP 5 or 7? I try to reproduce this.

from slim-api-skeleton.

pdrappo avatar pdrappo commented on August 22, 2024

@tuupola Mike, i'm using PHP 7 on CLI mode when i'm developing.

from slim-api-skeleton.

ganesh35 avatar ganesh35 commented on August 22, 2024

I am using PHP Version 7.1.1

from slim-api-skeleton.

execthis avatar execthis commented on August 22, 2024

Quick fix for Php7 would be replacing \Exception with \Throwable for:

public function __invoke(Request $request, Response $response, \Exception $exception)

See https://www.slimframework.com/docs/handlers/php-error.html for reference.

from slim-api-skeleton.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.