Nobody enjoys the process of debugging their code. In order to build killer web apps though, it’s crucial that you be aware of the process thoroughly. This article breaks down the basic principles of debugging in Font Download, allows you to understand PHP’s error messages and introduces you to some useful tools to help make the process a little less painful.
Performing your Ground Work
It is crucial that you configure PHP correctly and write your code in a way which it produces meaningful errors in the proper time. As an example, it is actually generally good practice to turn on the verbose degree of error reporting on the development platform. This probably isn’t such a good idea, however, on your production server(s). In a live environment you neither desire to confuse an authentic user or give malicious users a lot of information about the inner-workings of your site.
So, bearing that in mind lets discuss the much too common “I’m getting no error message” issue. This really is normally the consequence of syntax error on the platform where the developer has not yet done their ground work correctly. First, you need to turn display_errors on.
Next, you will have to set an error reporting level. As default PHP 4 and 5 do not show btc notices which is often crucial in debugging your code (more about that shortly). Notices are generated by PHP whether or not they are displayed or otherwise, so deploying code with twenty notices being generated has an impact upon the overhead of your own site.
It is additionally worth mentioning that on your own development platform it is often a smart idea to make these modifications in your php.ini file rather than on the runtime. This is because if you experience a syntax error with these options placed in your code and never inside the php.ini you may, depending on your setup, be given a blank page. Likewise, it really is worth noting that if you’re setting these values within your code, a conditional statement might be a good
Syntactical errors or parse errors are usually the result of a typo in your code. For instance a missing semicolon, quotation mark, brace or parentheses. Warnings aren’t deal breakers like syntax errors. PHP iqgzff cope with a stern warning, however, it knows that you almost certainly created a mistake somewhere and it is notifying you about this.
Notices aren’t going to halt the execution of the code either, but they can be essential in tracking down a pesky bug. Often you’ll realize that code that’s working perfectly happily in a production environment starts throwing out notices once you set error_reporting to E_ALL.
PHP has helpfully told us that the FirstName key is undefined so we understand that this isn’t a case in the database record being NULL. However, perhaps we must check our SQL statement to make certain we’ve actually retrieved the user’s first name through the database. In this case, the notice has helped us eliminate a possible issue which includes consequently steered us towards the likely source of our problem. With no notice our likely first stop could have been the database record, followed by tracing back through our logic to eventually find our omission in the SQL.
Fatal Errors sound probably the most painful of the four but are actually frequently the easiest to settle. Exactly what it means, in short, is the fact PHP understands what you’ve asked it to perform but can’t execute the request. Your syntax is correct, you’re speaking its language but PHP doesn’t have what it requires to comply.
Hopefully, over the course of this post you might have learned how to do your groundwork by preparing debugtrace for that debugging process; recognize and deal with the 4 key PHP error types and make use of var_dump() to your benefit. Likewise, I hope that you will find Xdebug and FirePHP useful and they will make life easier for you throughout your development cycle.
As I’ve already mentioned, and I really can’t say this enough, remember to get rid of or suppress your debug output when you put your sites into production, in the end, there’s nothing worse than all of your users having the capacity to read about your errors in excruciating detail.