CMS Made Simple Development Cookbook
上QQ阅读APP看书,第一时间看更新

Using CMS in Debug Mode

When you start developing extensions of any kind for CMS Made Simple, a certain amount of your development time will involve tracking down things that aren't working the way you expect them to. Happily, CMS Made Simple has some built-in tools for helping in the debugging process.

This recipe shows you how to run CMS Made Simple in debug mode, and gives you some idea of what to look for in debug output.

How to do it...

  1. Find your CMS Made Simple base install directory. Within that directory will be your install's config.php file.
  2. Edit config.php and locate the following section
    # CMSMS Debug Mode? Turn it on to get a better error when you
    # see {nocache} errors, or to allow seeing php notices, warnings, and errors in the html output.
    # This setting will also disable browser css caching.
    $config['debug'] = false;
    
  3. Change the "false" to "true" and save the file.
  4. Browse through your site. At the bottom of each page will be the debug information:

How it works...

Debug mode causes CMS Made Simple to do a number of things differently than in normal production mode:

  1. PHP error reporting is changed to E_ALL, so warnings and errors will all be displayed.
  2. Page and CSS caching is disabled.
  3. Page redirecting via the API is disabled; instead, a link is displayed that will lead to the original destination.
  4. All database interactions are displayed.
  5. Select core functions display diagnostic information

Often, the display of otherwise hidden warnings or errors will be sufficient for you to track down issues by revealing problems like typos in variable names, missing parentheses, or other syntax errors.

The display of database interactions is useful for diagnosing query problems. Ideally, of course, all extension code we write has proper error checking and reporting. If, however, our code isn't that robust (or if we're still in early development, when such error handling has not yet been added), debug mode helps us identify problems.

See also

  • Chapter 10, Setting Special Diagnostic Messages for Debug Mode recipe