Debugging#
Silverstripe CMS can be a large and complex framework to debug, but there are ways to make debugging less painful. In this guide we show the basics on defining the correct Environment Type for your application and other built-in helpers for dealing with application errors.
Environment Types
Logging and Error Handling
URL Variable tools
Template debugging
Performance#
See the Profiling documentation for more information on profiling Silverstripe CMS to track down bottle-necks and identify slow moving parts of your application chain.
Debugging utilities#
The Debug class contains a number of static utility methods for more advanced debugging.
use SilverStripe\Dev\Backtrace;
use SilverStripe\Dev\Debug;
Debug::show($myVariable);
// similar to print_r($myVariable) but shows it in a more useful format.
Debug::message("Wow, that's great");
// prints a short debugging message.
Backtrace::backtrace();
// prints a calls-stack
Debugging database queries#
You can opt in to including a comment on all ORM queries indicating where the query was executed by setting the DBQueryBuilder.trace_query_origin configuration property or the SS_TRACE_DB_QUERY_ORIGIN environment variable to true.
Note that the environment variable, if set, will take precedence over the configuration property value.
This is useful if you're using a database proxy, or if you're using the showqueries URL variable.