Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
648 views
in Technique[技术] by (71.8m points)

php - Throwing a custom 503 exception in CakePHP 2

I need to give a 503 Service Unavailable HTTP header.

Normally I use these for 404 and 500 codes

throw new NotFoundException();
throw new InternalErrorException();

But I couldn't find relevant exception for 503 in CakePHP 2.2?

In my "app/lib/AppExceptionHandler.php" file I have this class/function that handles errors.

class AppExceptionHandler {
    public static function handle($error) {
     }

Edit:

  • Inside "app/Lib" folder I created a file named "MyExceptions.php". I wrote the following code inside this file:

    class ServiceUnavailableException extends CakeException {
    
    protected $_messageTemplate = 'Service is not available now';
    
    }
    
  • In "bootstrap.php" I wrote this:

    App::uses('MyExceptions', 'Lib');

  • Then inside "MyNewController.php" file I wrote this:

    throw new ServiceUnavailableException("just trying");

But then I get this error when I throw this exception:

Fatal error: Class 'ServiceUnavailableException' not found in
 /var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php
 on line 3560

Warning (2): Cannot modify header information - headers already sent by
(output started at 
/var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php:3560)
[APP/Lib/AppExceptionHandler.php, line 19]

What do I miss? Thank you

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The Exceptions page in the Cake 2.0 book is worth a read.

Here's my short test:

// in bootstrap.php
require(APP . 'Lib' . DS . 'MyExceptions.php');


// in /Lib/MyExceptions.php
class ServiceUnavailableException extends CakeException {

    protected $_messageTemplate = 'Test';
}

// in controller
throw new ServiceUnavailableException('Service unavailable', 503);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...