During development, set the error reporting to
E_ALL, i.e. the highest warning level. This helps expose common errors like uninitialized variables.
Tip: In lib-common.php, add an extra
error_reporting(E_ALL) statement like so:
// Prevent PHP from reporting uninitialized variables error_reporting(E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR | E_USER_ERROR); error_reporting(E_ALL); /** * This is the common library for Geeklog. Through our code, you will see
error_reporting in this otherwise empty line means that you only get an additional one-line difference when doing a hg diff (or similar). It's also easier to remove than when you edit the existing
Don't use the ereg family of functions
The ereg pattern matching functions (
ereg_replace, etc.) will be removed in PHP 6. They are already throwing "deprecated" warnings in PHP 5.3.
str_replace (preferred) or
preg_replace and similar functions instead.
Use htmlspecialchars instead of htmlentities
When preparing content for display, you may want to ensure that certain special characters are displayed as-is instead of being interpreted (e.g. pointy brackets which may be mistaken for HTML tags). PHP provides several functions to do that. Usually, the function to use it
htmlspecialchars(). Do not use
htmlentities() for content, as this may inadvertently break special characters in some languages (e.g. Japanese).