How should I write error reporting modules in PHP? Say, I want to write a function in PHP: ‘bool isDuplicateEmail($email)’. In that function, I want to check if the $email is already present in the database. It will return ‘true’, if exists. Else ‘false’.
Now, the query execution can also fail, In that time I want to report ‘Internal Error’ to the user.
The function should not die with typical mysql error: die(mysql_error(). My web app has two interfaces: browser and email(You can perform certain actions by sending an email). In both cases it should report error in good aesthetic. Do I really have to use exception handling for this?
Can anyone point me to some good PHP project where I can learn how to design robust PHP web-app?
In my PHP projects, I have tried several different tacts. I’ve come to the following solution which seems to work well for me:
First, any major PHP application I write has some sort of central singleton that manages application-level data and behaviors. The ‘Application’ object. I mention that here because I use this object to collect generated feedback from every other module. The rendering module can query the application object for the feedback it deems should be displayed to the user.
On a lower-level, every class is derived from some base class that contains error management methods. For example an ‘AddError(code,string,global)’ and ‘GetErrors()’ and ‘ClearErrors’. The ‘AddError’ method does two things: stores a local copy of that error in an instance-specific array for that object and (optionally) notifies the application object of this error (‘global’ is a boolean) which then stores that error for future use in rendering.
So now here’s how it works in practice:
Note that ‘Object’ defines the following methods: AddError ClearErrors GetErrorCodes GetErrorsAsStrings GetErrorCount and maybe HasError for convenience
The reason I like this is because: