Thursday, November 29, 2012

Re: Throwing a custom 503 exception in CakePHP 2

You would probably need to have the App::uses() in your controller, rather than the bootstrap.

I'm not sure what the best method of including the new exception type, from the bootstrap, other than a include_once() statement.. and that doesn't look nice.  I've always been a bit lazy and have just included the class definition for the new exception directly in the bootstrap.php, and that's not particularly nice either.

Regards
Reuben Helms

On Friday, 30 November 2012 09:20:30 UTC+10, mercury12 wrote:

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("tryout");

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

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com.
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
 
 

No comments: