The second suggestion calls for using require, instead of App::uses
in your bootstrap.php, something like
require ROOT . DS . APP . DS . 'Error' . DS . 'exceptions.php';
And just have exceptions.php in app/Error, mimicking/mirroring placement in
lib/Cake/Error.
You may need to double check if ROOT . DS . APP is the right combo of
definitions to use.
Regards
Reuben Helms
On Friday, 30 November 2012 10:00:18 UTC+10, mercury12 wrote:
>
> I tried your second suggestion. In "app/Lib/Error" I created
> "exceptions.php" and put the "ServiceUnavailableException" class inside
> this file.
>
> Then I wrote this into "bootstrap.php":
> App::uses('exceptions', 'Lib/Error');
>
> But I get the same error?
>
> On Friday, November 30, 2012 1:51:36 AM UTC+2, Reuben wrote:
>>
>> Looking at App::uses(), it expects the first parameter to be a classname,
>> rather than a file name
>>
>> Perhaps doing App::uses('ServiceUnavailableException', 'Lib'), and
>> renaming the file to ServiceUnavailableException.php might be better, and
>> more in keeping with the convention of one class per file.
>>
>> When Cake bootstraps its own exceptions (in lib/Cake/bootstrap.php), it
>> does a require CAKE . 'Error' . DS . 'exceptions.php'; You could possibly
>> follow their lead, and bundle all your exceptions in
>> app/Error/exceptions.php, then require that from your bootstrap. Then you
>> wouldn't need to use App::uses() at all.
>>
>> On Friday, 30 November 2012 09:32:34 UTC+10, mercury12 wrote:
>>>
>>> Then I also put "App:uses()" inside bootstrap and inside controller
>>> class.
>>> But still I got the same error.
>>>
>>>
>>> On Friday, November 30, 2012 1:29:20 AM UTC+2, Reuben wrote:
>>>>
>>>> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.